Exemplo n.º 1
0
        private void Loading_Load(object sender, EventArgs e)
        {
            DatabaseContext databaseContextCreated = new DatabaseContext();

            try
            {
                bool _databaseInitilized = databaseContextCreated.Database.EnsureCreated();
                if (_databaseInitilized && (!databaseContextCreated.Users.Any() || !databaseContextCreated.ApplicationSettings.Any()))
                {
                    ApplicationSetting oApplicationSetting = new ApplicationSetting()
                    {
                        LibraryName          = "Library Number " + Utility.RandomDoubleCodeGeneratorByDigitsCount(2).ToString(),
                        LibraryRegisterdInWS = false,
                        LibraryAuthCode      = string.Empty,
                    };

                    User oUser = new User()
                    {
                        FirstName          = "Zahra",
                        LastName           = "Nabizzz",
                        Username           = oApplicationSetting.LibraryName.Trim().Replace("  ", " ").Replace(" ", "").ToLower(),
                        PhoneNumber        = "09372302283",
                        PhoneNumberIsoCode = "IR",
                        EmailAddress       = "*****@*****.**",
                        Role     = Domain.Enums.Role.Administrator,
                        Password = Hashing.GetSha256("123456789"),
                        IsPhoneNumberVerified  = true,
                        IsEmailAddressVerified = true,
                    };
                    databaseContextCreated.Users.Add(oUser);
                    databaseContextCreated.SaveChanges();

                    databaseContextCreated.ApplicationSettings.Add(oApplicationSetting);
                    databaseContextCreated.SaveChanges();
                }
                _databaseCreatedSuccessfuly = true;
            }
            catch (Exception ex)
            {
                DialogResult result = MessageBox.Show("DatabaseCreationProcess Error With Detail : \n \n" + ex.Message, "Database Error!", MessageBoxButtons.OK);
                if (result == DialogResult.OK)
                {
                    MessageBoxOkClick();
                }
            }

            LibraryManagmentConnectSDK.ConnectionSetting.SetupConnectionChannel("localhost:5000");
            if (!LibraryManagmentConnectSDK.ConnectionSetting.ConnectedToServer)
            {
                MessageBox.Show("Couldnt Connect To The Library Managment System !", "Connection Error!", MessageBoxButtons.OK);
            }
            if (!Utility.GetApplicationSetting().LibraryRegisterdInWS)
            {
                if (!LibraryManagmentConnectSDK.ConnectionSetting.ConnectedToServer)
                {
                    DialogResult result = MessageBox.Show("Couldnt Connect To The Library Managment System \n For The First Time You Should Connect To WS Server \n Try Agin!", "Connection Error!", MessageBoxButtons.OK);
                    if (result == DialogResult.OK)
                    {
                        MessageBoxOkClick();
                    }
                }
                else
                {
                    LibraryManagmentConnectSDK.ServerConnection     oServerConnection   = new LibraryManagmentConnectSDK.ServerConnection();
                    LibraryManagmentConnectSDK.LibraryRegisterReply oRegistreationReply =
                        oServerConnection.LibraryRegister(new LibraryManagmentConnectSDK.LibraryRegisterRequest {
                        Name = Utility.GetApplicationSetting().LibraryName
                    });
                    if (oRegistreationReply == null || oRegistreationReply.IsSuccessfull == false)
                    {
                        DialogResult result = MessageBox.Show("Couldnt Register This Library To The Library Managment System \n For The First Time You Should Register To WS Server \n Try Agin! \n With Error : "
                                                              + ((oRegistreationReply == null)? "Couldnt Get Response From Server" : ((Domain.Enums.ResponseErrorType)oRegistreationReply?.ErrorType).ToString()), "Registration Error!", MessageBoxButtons.OK);
                        if (result == DialogResult.OK)
                        {
                            MessageBoxOkClick();
                            return;
                        }
                    }

                    Domain.Entities.User oAdminUser =
                        databaseContextCreated.Users.Where(current => current.Username == Utility.GetApplicationSetting().LibraryName.Trim().Replace("  ", " ").Replace(" ", "").ToLower())
                        .FirstOrDefault();
                    if (oAdminUser == null)
                    {
                        DialogResult result = MessageBox.Show("Couldnt Connect To The Library Managment System \n For The First Time You Should Connect To WS Server \n Try Agin!", "Connection Error!", MessageBoxButtons.OK);
                        if (result == DialogResult.OK)
                        {
                            MessageBoxOkClick();
                            return;
                        }
                    }

                    oServerConnection.SetLibrary(oRegistreationReply.AuthCode);

                    LibraryManagmentConnectSDK.AddUserRequest oAddUserRequest =
                        new LibraryManagmentConnectSDK.AddUserRequest
                    {
                        FirstName          = oAdminUser.FirstName,
                        LastName           = oAdminUser.LastName,
                        Username           = oAdminUser.Username,
                        EmailAddress       = oAdminUser.EmailAddress,
                        PhoneNumber        = oAdminUser.PhoneNumber,
                        Password           = oAdminUser.Password,
                        PhoneNumberIsoCode = oAdminUser.PhoneNumberIsoCode,
                        Role = (int)oAdminUser.Role,
                    };

                    LibraryManagmentConnectSDK.AddUserReply oAddUserReply =
                        oServerConnection.AddUser(oAddUserRequest);
                    if (oAddUserReply == null || oAddUserReply.IsSuccessfull == false)
                    {
                        DialogResult result = MessageBox.Show("Couldnt Register This User To The Library Managment System \n For The Signup Process You Should Connect To WS Server, Try Agin! \n With Error : "
                                                              + oAddUserReply == null ? "Couldnt Get Response From Server" : ((Domain.Enums.ResponseErrorType)oAddUserReply.ErrorType).ToString(), "Registration Error!", MessageBoxButtons.OK);
                        if (result == DialogResult.OK)
                        {
                            MessageBoxOkClick();
                            return;
                        }
                    }

                    oAdminUser.ConnectedToWS = true;
                    oAdminUser.WSAuthCode    = oAddUserReply.UserAuthCode;

                    Domain.Entities.ApplicationSetting oApplicationSetting
                        = databaseContextCreated.ApplicationSettings.OrderByDescending(current => current.RegisterDate).FirstOrDefault();
                    oApplicationSetting.LibraryRegisterdInWS = true;
                    oApplicationSetting.LibraryAuthCode      = oRegistreationReply.AuthCode;

                    databaseContextCreated.Entry(oAdminUser).State          = Microsoft.EntityFrameworkCore.EntityState.Modified;
                    databaseContextCreated.Entry(oApplicationSetting).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                    databaseContextCreated.SaveChanges();
                    Utility.UpdateApplicationSetting();
                }
            }

            MainTimer          = new Timer();
            MainTimer.Interval = 2000;
            MainTimer.Enabled  = true;
            MainTimer.Tick    += new EventHandler(t_Tick);
        }
Exemplo n.º 2
0
        private void Button4_Click(object sender, EventArgs e)
        {
            ViewModels.SignUpInput oSignUpInput =
                new ViewModels.SignUpInput()
            {
                FirstName          = Nametxt.Text,
                LastName           = LastNametxt.Text,
                EmailAddress       = Emailtxt.Text,
                PhoneNumberIsoCode = comboBoxIsoCode.SelectedValue.ToString(),
                PhoneNumber        = PhoneNumbertxt.Text,
                Password           = Passwordtxt.Text,
                Username           = Usernametxt.Text,
            };

            FluentValidation.Results.ValidationResult validationResult = Utility.GeneralViewModelValidator
                                                                         <ViewModels.SignUpInput, Validations.SignUpInputValidator>(oSignUpInput);
            if (!validationResult.IsValid)
            {
                string error_message = validationResult.ToString();
                MessageBox.Show(error_message, "Error In Input Data", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (db.Users.Where(current => current.Username == oSignUpInput.Username.Trim().ToLower()).Any())
            {
                string error_message = validationResult.ToString();
                MessageBox.Show("Someone registerd with this 'Username' Before, Please choose a new one!", "Error In Input Data", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (string.IsNullOrEmpty(oSignUpInput.PhoneNumber))
            {
                oSignUpInput.PhoneNumberIsoCode = string.Empty;
            }
            else
            {
                string strRawPhoneNumber     = oSignUpInput.PhoneNumber.Trim().ToLower();
                string strRawCountryIso2Code = oSignUpInput.PhoneNumberIsoCode.Trim();
                PhoneNumbers.PhoneNumberUtil phoneNumberUtil;
                phoneNumberUtil = PhoneNumbers.PhoneNumberUtil.GetInstance();
                PhoneNumbers.PhoneNumber phoneNumber = phoneNumberUtil.Parse(strRawPhoneNumber, strRawCountryIso2Code);
                string strPhoneNumber = phoneNumberUtil.FormatOutOfCountryCallingNumber(phoneNumber, "IR");
                strPhoneNumber           = strPhoneNumber.Replace("  ", " ");
                strPhoneNumber           = strPhoneNumber.Replace(" ", "");
                oSignUpInput.PhoneNumber = strPhoneNumber;
            }

            if (!string.IsNullOrEmpty(oSignUpInput.EmailAddress))
            {
                oSignUpInput.EmailAddress = oSignUpInput.EmailAddress.Trim().ToLower();
            }

            oSignUpInput.Password = Hashing.GetSha256(oSignUpInput.Password);
            oSignUpInput.Username = oSignUpInput.Username.Trim().ToLower();

            User oUser = new User()
            {
                FirstName          = oSignUpInput.FirstName,
                LastName           = oSignUpInput.LastName,
                Username           = oSignUpInput.Username,
                Password           = oSignUpInput.Password,
                PhoneNumberIsoCode = oSignUpInput.PhoneNumberIsoCode,
                PhoneNumber        = oSignUpInput.PhoneNumber,
                EmailAddress       = oSignUpInput.EmailAddress,
            };

            if (!LibraryManagmentConnectSDK.ConnectionSetting.ConnectedToServer)
            {
                DialogResult result = MessageBox.Show("Couldnt Connect To The Library Managment System \n For The Signup Process You Should Connect To WS Server, Try Agin!", "Connection Error!", MessageBoxButtons.OK);
                return;
            }
            else
            {
                LibraryManagmentConnectSDK.ServerConnection oServerConnection = new LibraryManagmentConnectSDK.ServerConnection();
                LibraryManagmentConnectSDK.AddUserRequest   oAddUserRequest   =
                    new LibraryManagmentConnectSDK.AddUserRequest()
                {
                    FirstName          = oUser.FirstName,
                    LastName           = oUser.LastName,
                    Username           = oUser.Username,
                    EmailAddress       = oUser.EmailAddress,
                    PhoneNumber        = oUser.PhoneNumber,
                    Password           = oUser.Password,
                    PhoneNumberIsoCode = oUser.PhoneNumberIsoCode,
                    Role     = (int)oUser.Role,
                    AuthCode = Utility.GetApplicationSetting().LibraryAuthCode,
                };

                LibraryManagmentConnectSDK.AddUserReply oRegistreationReply =
                    oServerConnection.AddUser(oAddUserRequest);
                if (oRegistreationReply == null || oRegistreationReply.IsSuccessfull == false)
                {
                    DialogResult result = MessageBox.Show("Couldnt Register This User To The Library Managment System \n For The Signup Process You Should Connect To WS Server, Try Agin! \n With Error : "
                                                          + oRegistreationReply == null ? "Couldnt Get Response From Server" : ((Domain.Enums.ResponseErrorType)oRegistreationReply.ErrorType).ToString(), "Registration Error!", MessageBoxButtons.OK);
                    return;
                }

                oUser.ConnectedToWS = true;
                oUser.WSAuthCode    = oRegistreationReply.UserAuthCode;
            }

            db.Users.Add(oUser);
            db.SaveChanges();

            AuthenicatedUser oAuthenicatedUser = new AuthenicatedUser(oUser);

            MainPage oLibraryFirstPageForm = new MainPage();

            oLibraryFirstPageForm.SetAuthenicatedUser(oAuthenicatedUser);
            oLibraryFirstPageForm.Show();

            this.Close();
        }