public void SetAuthenicatedUser(AuthenicatedUser authenicated)
        {
            db = new DatabaseContext();
            authenicatedUser = authenicated;

            if (!LibraryManagmentConnectSDK.ConnectionSetting.ConnectedToServer)
            {
                LibraryManagmentConnectSDK.ConnectionSetting.SetupConnectionChannel("localhost:5000");
            }

            libraryManagerConnection = new LibraryManagmentConnectSDK.ServerConnection();
            libraryManagerConnection.SetLibrary(Utility.GetApplicationSetting().LibraryAuthCode);
            libraryManagerConnection.SetUser(authenicatedUser.WSAuthCode);
        }
예제 #2
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);
        }