UserDetailsEditor.cs 5.26 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MoyaAdminLib;
using System.Globalization;
using System.Net;
using System.IO;

namespace RamaSignup
{
    public partial class UserDetailsEditor : UserControl
    {
        public event EventHandler CloseView;

        User currentUser = null;
        public UserDetailsEditor()
        {
            InitializeComponent();
            cbGender.Items.Add("Valitse");
            cbGender.Items.Add("Mies");
            cbGender.Items.Add("Nainen");
        }
        public void LoadUser(User user)
        {
            btnSaveData.Visible = false;

            txtEmail.Text = user.Email;
            txtFirstName.Text = user.Firstname;
            txtLastName.Text = user.Lastname;
            txtNick.Text = user.Nick;
            //takePictureControl1.loadUserImage(user);
            txtAdress.Text = user.StreetAddress;
            txtZip.Text = user.ZipCode;
            txtCity.Text = user.postOffice;
            txtPhone.Text = user.PhoneNumber;

            DateTime birthday = DateTime.MinValue;
            DateTime.TryParse(user.Birthday, out birthday);

            if (user.Gender == "MALE")
                cbGender.SelectedItem = "Mies";
            else if (user.Gender == "FEMALE")
                cbGender.SelectedItem = "Nainen";
            else
                cbGender.SelectedItem = "Valitse";

            
            //txtAge.Text = user.Birthday;

            if (user.UserId == 0) 
            {
                // new user
                takePictureControl1.TakePicture();
                txtFirstName.ReadOnly = false;
                txtLastName.ReadOnly = false;
                txtNick.ReadOnly = false;

                txtAdress.ReadOnly = false;
                txtZip.ReadOnly = false;
                txtCity.ReadOnly = false;
                txtPhone.ReadOnly = false;
            }
            else
            {
                // old user
                takePictureControl1.loadUserImage(user);
            } 
               
            currentUser = user;
            lblMessage.Text = "Voit pyytää muutoksia tietoihin infotiskillä";
        }


        


        void clear() 
        {
            this.cbGender.SelectedIndex = 0;
            txtAdress.Text = "";
            //txtAge.Text = "";
            txtCity.Text = "";
            txtEmail.Text = "";
            txtFirstName.Text = "";
            txtNick.Text = "";
            txtPhone.Text = "";
            txtZip.Text = "";
            currentUser = null;
        }
        void checkFields()
        {
            string errorType = getErrorMessage();
            if (errorType != null)
            {
                this.lblMessage.Text = errorType + " puuttuu tai on virheellinen. Täytä puuttuvat kentät oikeilla tiedoilla.";
                this.lblMessage.ForeColor = Color.Red;
                return;
            }

        }
        string getErrorMessage()
        {
            int tmp;
            //checking validity

            if (this.txtFirstName.Text.Trim().Length < 5)
            {
                    return "Nimi";
            }
            else if (this.txtNick.Text.Trim().Length < 2)
            {
                    return "Nick (nimimerkki)";
            }
            /*else if (this.txtAge.Text.Trim().Length < 1 || (!int.TryParse(this.txtAge.Text.Trim(), out tmp)))
            {
                    return "Syntymäaika";
            }*/
            else if (this.cbGender.SelectedIndex == 0)
            {
                    return "Sukupuoli";
            }
            else if (this.txtPhone.Text.Length < 2)
            {
                    return "Puhelinnumero";
            }
            else if (this.txtEmail.Text.Trim().Length < 5)
            {
                    return "Sähköposti";
            }
            else if (this.txtAdress.Text.Trim().Length < 2)
            {
                    return "Lähiosoite";
            }
            else if (this.txtZip.Text.Trim().Length != 5 || (!int.TryParse(this.txtZip.Text.Trim(), out tmp)))
            {
                    return "Postinumero";
            }
            else if (this.txtCity.Text.Trim().Length < 2)
            {
                    return "Paikkakunta";
            }
            else
            {
                return null;
            }

        }

        private void UserDetailsEditor_Load(object sender, EventArgs e)
        {
            lblMessage.Text = "";
            takePictureControl1.Changed += takePictureControl1_Changed;
         
        }

        void takePictureControl1_Changed(object sender, EventArgs e)
        {
            btnSaveData.Visible = true;
        }

        private void btnSaveData_Click(object sender, EventArgs e)
        {
            if (currentUser.UserId > 0)
                takePictureControl1.SaveUserImage(currentUser);
            else
            {

            }
            onCloseView();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            onCloseView();
        }
        private void onCloseView()
        {
            clear();
            if (CloseView != null)
                CloseView(this, null);
        }
    }
}