コード例 #1
0
        protected void UnregisteredUsersListView_ItemCommand(object sender, ListViewCommandEventArgs e)
        {
            if (e.CommandName == "Add")
            {
                var idCtrl       = e.Item.FindControl("IdHiddenField") as HiddenField;
                var typeCtrl     = e.Item.FindControl("UserTypeLabel") as Label;
                var userNameCtrl = e.Item.FindControl("AssignedUserNameTextBox") as TextBox;
                var emailCtrl    = e.Item.FindControl("AssignedEmailTextBox") as TextBox;
                if (idCtrl != null && typeCtrl != null && userNameCtrl != null && emailCtrl != null)
                {
                    MessageUserControl.TryRun(() =>
                    {
                        var controller = new RegistrationController();
                        var user       = new UnregisteredUser
                        {
                            Id = int.Parse(idCtrl.Value),
                            AssignedUserName = userNameCtrl.Text,
                            AssignedEmail    = emailCtrl.Text,
                            Position         = Convert.ToInt32(typeCtrl.Text)
                        };
                        //if (typeCtrl.Text == UserType.Employee.ToString())
                        //    user.UserType = UserType.Employee;
                        //else if (typeCtrl.Text == UserType.Customer.ToString())
                        //    user.UserType = UserType.Customer;
                        //else
                        //    throw new Exception("Unrecognized Northwind User Type. Only exmployees and customers can be added on this page.");

                        controller.RegisterUser(user);
                        UnregisteredUsersListView.DataBind();
                    }, "Added User", $"Successfully added the {typeCtrl.Text} {userNameCtrl.Text}.");
                }
            }
        }
コード例 #2
0
        public static int AddUnregisteredUser(UnregisteredUser unregisteredUser)
        {
            int          newUnregisteredUserId = 0;
            const string query = @"insert into dbo.UnregisteredUsers (ContactName, CompanyName, Email, TypeOfOwnershipId, CityId, INN, OGRN, PhoneNumber, Created, SbisCompanyName, SbisTypeOfOwnershipId, SbisOGRN, SbisWorksFrom) 
values (@ContactName, @CompanyName, @Email, @TypeOfOwnershipId, @CityId, @INN, @OGRN, @PhoneNumber, @Created, @SbisCompanyName, @SbisTypeOfOwnershipId, @SbisOGRN, @SbisWorksFrom);
DECLARE @newUnregisteredUserID int;
   SELECT @newUnregisteredUserID = SCOPE_IDENTITY();
   SELECT @newUnregisteredUserID";

            var connect    = new SqlConnection(connStr);
            var sqlCommand = new SqlCommand(query, connect);
            var parameters = sqlCommand.Parameters;

            AddAddOrUpdateSqlParameters(parameters, unregisteredUser);
            parameters.AddWithValue("OpenDialogRespondentIds", "");
            parameters.AddWithValue("CurrentRespondentId", 0);

            try
            {
                connect.Open();
                newUnregisteredUserId = (int)sqlCommand.ExecuteScalar();
            }
            catch (Exception ex)
            {
                string methodName = MethodBase.GetCurrentMethod().Name;
                throw new Exception("in UnregisteredUsersDAL." + methodName + "(): " + ex);
            }
            finally
            {
                connect.Close();
            }

            return(newUnregisteredUserId);
        }
コード例 #3
0
        public void RegisterUser(UnregisteredUser userInfo)
        {
            // string randomPassword = Guid.NewGuid().ToString().Replace("-", "");
            var userAccount = new ApplicationUser()
            {
                UserName = userInfo.AssignedUserName,
                Email    = userInfo.AssignedEmail
            };

            switch (userInfo.UserType)
            {
            case UnregisteredUserType.Customer:
                userAccount.CustomerID = userInfo.Id;
                break;

            case UnregisteredUserType.Employee:
                userAccount.EmployeeID = userInfo.Id;
                break;
            }

            this.Create(userAccount, STR_DEFAULT_PASSWORD); // or randomPassword
            switch (userInfo.UserType)
            {
            case UnregisteredUserType.Employee:
                this.AddToRole(userAccount.Id, SecurityRoles.Staff);
                break;

            case UnregisteredUserType.Customer:
                this.AddToRole(userAccount.Id, SecurityRoles.RegisteredUsers);
                break;
            }
        }
コード例 #4
0
        public static UnregisteredUser GetUnregisteredUser(int id)
        {
            UnregisteredUser result = null;
            const string     query  = @"select * from dbo.UnregisteredUsers where Id=@Id";
            var connection          = new SqlConnection(connStr);
            var sqlCommand          = new SqlCommand(query, connection);

            sqlCommand.Parameters.AddWithValue("Id", id);

            try
            {
                connection.Open();
                var reader = sqlCommand.ExecuteReader();
                if (reader.Read())
                {
                    result = ReadUnregisteredUserInfo(reader);
                }

                reader.Close();
            }
            catch (Exception ex)
            {
                string methodName = MethodBase.GetCurrentMethod().Name;
                throw new Exception("in UnregisteredUsersDAL." + methodName + "(): " + ex);
            }
            finally
            {
                connection.Close();
            }

            return(result);
        }
コード例 #5
0
        public async Task <IEnumerable <UnregisteredUserDto> > ImportExcelFileAndGetImportDataAsync(string fullFileLocation)
        {
            FileInfo fileInfo = new FileInfo(fullFileLocation);

            List <UnregisteredUserDto> importDataListDto = new List <UnregisteredUserDto> ();

            using (ExcelPackage package = new ExcelPackage(fileInfo)) {
                var workSheet = package.Workbook.Worksheets[1];
                int totalRows = workSheet.Dimension.Rows;

                List <UnregisteredUser> importDataList = new List <UnregisteredUser> ();

                for (int i = 2; i <= totalRows; i++)
                {
                    var importData = new UnregisteredUser();
                    importData.SetName(workSheet.Cells[i, 1].Value.ToString());
                    importData.SetSurname(workSheet.Cells[i, 2].Value.ToString());
                    importData.SetEmail(workSheet.Cells[i, 3].Value.ToString().ToLowerInvariant());
                    importDataList.Add(importData);

                    importDataListDto.Add(_mapper.Map <UnregisteredUserDto> (importData));
                }

                await _unregisteredUserRepository.AddAllAsync(importDataList);
            }
            Directory.Delete(fileInfo.DirectoryName, true);
            return(importDataListDto);
        }
コード例 #6
0
        public void RegisterUser(UnregisteredUser userInfo)
        {
            // Basic validation
            if (userInfo == null)
            {
                throw new ArgumentNullException(nameof(userInfo), "Data for unregistered users is required");
            }
            if (string.IsNullOrEmpty(userInfo.AssignedUserName))
            {
                throw new ArgumentException("New users must have a username", nameof(userInfo.AssignedUserName));
            }

            var userAccount = new ApplicationUser()
            {
                UserName = userInfo.AssignedUserName,
                Email    = userInfo.AssignedEmail
            };

            switch (userInfo.UserType)
            {
            case UserType.Customer:
                userAccount.CustomerId = int.Parse(userInfo.Id);
                break;

            case UserType.Employee:
                userAccount.EmployeeId = int.Parse(userInfo.Id);
                break;
            }

            var userManager    = HttpContext.Current.Request.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var identityResult = userManager.Create(userAccount, ConfigurationManager.AppSettings["newUserPassword"]); // or randomPassword

            if (identityResult.Succeeded)
            {
                switch (userInfo.UserType)
                {
                case UserType.Employee:
                    userManager.AddToRole(userAccount.Id, ConfigurationManager.AppSettings["employeeRole"]);
                    break;

                case UserType.Customer:
                    userManager.AddToRole(userAccount.Id, ConfigurationManager.AppSettings["customerRole"]);
                    break;
                }
            }
            else
            {
                throw new Exception($@"Security changes were not applied:<ul> 
                                       {string.Join(string.Empty,
                                                    identityResult.Errors
                                                    .Select(x => $"<li>{x}</li>"))}</ul>");
            }
        }
コード例 #7
0
        private static UnregisteredUser ReadUnregisteredUserInfo(SqlDataReader reader)
        {
            var result = new UnregisteredUser
            {
                Id              = (int)reader["Id"],
                CompanyName     = ((string)reader["CompanyName"]).Trim(),
                ContactName     = ((string)reader["ContactName"]).Trim(),
                Email           = ((string)reader["Email"]).Trim(),
                TypeOfOwnership = (TypesOfOwnership)(int)reader["TypeOfOwnershipId"],
                CityId          = (int)reader["CityId"],
                INN             = ((string)reader["INN"]).Trim(),
                OGRN            = ((string)reader["OGRN"]).Trim(),
                PhoneNumber     = ((string)reader["PhoneNumber"]).Trim(),
                Created         = (DateTime)reader["Created"]
            };

            if (reader["PhoneNumberCity"] != DBNull.Value)
            {
                result.PhoneNumberCity = ((string)reader["PhoneNumberCity"]).Trim();
            }

            #region поля СБИС
            if (reader["SbisCompanyName"] != DBNull.Value)
            {
                result.SbisCompanyName = ((string)reader["SbisCompanyName"]).Trim();
            }

            if (reader["SbisTypeOfOwnershipId"] != DBNull.Value)
            {
                result.SbisTypeOfOwnershipId = (int)reader["SbisTypeOfOwnershipId"];
            }

            if (reader["SbisOGRN"] != DBNull.Value)
            {
                result.SbisOGRN = ((string)reader["SbisOGRN"]).Trim();
            }

            if (reader["SbisWorksFrom"] != DBNull.Value)
            {
                result.SbisWorksFrom = (DateTime)reader["SbisWorksFrom"];
            }

            #endregion

            return(result);
        }
コード例 #8
0
        public UnregisteredUser Create(IUnitOfWork unitOfWork, UnregisteredUser obj)
        {
            obj.Email = obj.Email.Trim();

            var repository = unitOfWork.GetRepository<User>();

            if (repository.All().Any(x => x.Email.Equals(obj.Email, StringComparison.InvariantCultureIgnoreCase)))
            {
                throw new Exception("Пользователь с таким адресом электронной почты уже существует. Вы можете найти данный контакт через поиск.");
            }

            var catRepo = unitOfWork.GetRepository<UserCategory>();

            var cat = catRepo.All().FirstOrDefault(x => x.SystemName == "Unregistered") ?? new UserCategory
            {
                Name = "Незарегистрированные пользователи",
                SystemName = "Unregistered"
            };

            var user = new User
            {
                Login = obj.Email,
                FirstName = obj.FirstName,
                LastName = obj.LastName,
                MiddleName = obj.MiddleName,
                Email = obj.Email,
                OfficePhone = obj.OfficePhone,
                PersonPhone = obj.PersonPhone,
                MailAddress = obj.MailAddress,
                UserCategory = cat,
                IsUnregistered = true
            };

            repository.Create(user);

            unitOfWork.SaveChanges();

            obj.ID = user.ID;

            return obj;
        }
コード例 #9
0
    protected void UnregisteredUsersGridView_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        UnregisteredUsersGridView.SelectedIndex = e.NewSelectedIndex;
        GridViewRow row = UnregisteredUsersGridView.SelectedRow;

        if (row != null)
        {
            string userName = null, email = null;
            UnregisteredUserType userType;
            TextBox input;
            input = row.FindControl("GivenUserName") as TextBox;
            if (input != null)
            {
                userName = input.Text;
            }
            input = row.FindControl("GivenEmail") as TextBox;
            if (input != null)
            {
                email = input.Text;
            }
            userType = (UnregisteredUserType)Enum.Parse(typeof(UnregisteredUserType), row.Cells[1].Text);
            UnregisteredUser user = new UnregisteredUser()
            {
                Id               = int.Parse(UnregisteredUsersGridView.SelectedDataKey.Value.ToString()),
                UserType         = userType,
                Name             = row.Cells[2].Text,
                OtherName        = row.Cells[3].Text,
                AssignedUserName = userName,
                AssignedEmail    = email
            };

            UserManager manager = new UserManager();
            manager.RegisterUser(user);
            DataBind();
        }
    }
コード例 #10
0
 public async Task DeleteAsync(UnregisteredUser unregisteredUser)
 {
     _context.UnregisteredUsers.Remove(unregisteredUser);
     await _context.SaveChangesAsync();
 }
コード例 #11
0
 public async Task UpdateAsync(UnregisteredUser unregisteredUser)
 {
     _context.UnregisteredUsers.Update(unregisteredUser);
     await _context.SaveChangesAsync();
 }
コード例 #12
0
        public async Task AddAsync(UnregisteredUser unregisteredUser)
        {
            await _context.UnregisteredUsers.AddAsync(unregisteredUser);

            await _context.SaveChangesAsync();
        }
コード例 #13
0
        private static void AddAddOrUpdateSqlParameters(SqlParameterCollection parameters, UnregisteredUser unregisteredUser)
        {
            parameters.AddWithValue("ContactName", unregisteredUser.ContactName);
            parameters.AddWithValue("CompanyName", unregisteredUser.CompanyName);
            parameters.AddWithValue("Email", unregisteredUser.Email);
            parameters.AddWithValue("TypeOfOwnershipId", unregisteredUser.TypeOfOwnership);
            parameters.AddWithValue("CityId", unregisteredUser.CityId);
            parameters.AddWithValue("INN", unregisteredUser.INN);
            parameters.AddWithValue("OGRN", unregisteredUser.OGRN);
            parameters.AddWithValue("PhoneNumber", unregisteredUser.PhoneNumber);

            if (unregisteredUser.PhoneNumberCity != null)
            {
                parameters.AddWithValue("PhoneNumberCity", unregisteredUser.PhoneNumberCity);
            }
            else
            {
                parameters.AddWithValue("PhoneNumberCity", DBNull.Value);
            }

            parameters.AddWithValue("Created", unregisteredUser.Created);

            if (unregisteredUser.SbisCompanyName != null)
            {
                parameters.AddWithValue("SbisCompanyName", unregisteredUser.SbisCompanyName);
            }
            else
            {
                parameters.AddWithValue("SbisCompanyName", DBNull.Value);
            }

            if (unregisteredUser.SbisTypeOfOwnershipId.HasValue)
            {
                parameters.AddWithValue("SbisTypeOfOwnershipId", unregisteredUser.SbisTypeOfOwnershipId.Value);
            }
            else
            {
                parameters.AddWithValue("SbisTypeOfOwnershipId", DBNull.Value);
            }

            if (unregisteredUser.SbisOGRN != null)
            {
                parameters.AddWithValue("SbisOGRN", unregisteredUser.SbisOGRN);
            }
            else
            {
                parameters.AddWithValue("SbisOGRN", DBNull.Value);
            }

            if (unregisteredUser.SbisWorksFrom != null)
            {
                parameters.AddWithValue("SbisWorksFrom", unregisteredUser.SbisWorksFrom);
            }
            else
            {
                parameters.AddWithValue("SbisWorksFrom", DBNull.Value);
            }
        }
コード例 #14
0
 public void ChangeSortOrder(IUnitOfWork unitOfWork, UnregisteredUser obj, int newSortOrder)
 {
     throw new NotImplementedException();
 }
コード例 #15
0
 public void Delete(IUnitOfWork unitOfWork, UnregisteredUser obj)
 {
     throw new NotImplementedException();
 }