示例#1
0
        /// <summary>
        /// Сформировать отображаемое имя пользователя.
        /// </summary>
        /// <param name="registrateUser"> Регистрационные данные. </param>
        /// <returns> Возвращает отображаемое имя пользователя. </returns>
        private static string GetDisplayName(DtoRegistrateUser registrateUser)
        {
            var patronomic = string.IsNullOrEmpty(registrateUser.Patronomic)
                ? string.Empty
                : $"{registrateUser.Patronomic.First()}.";

            return($"{registrateUser?.Surname} {registrateUser?.Name.First()}. {patronomic}");
        }
示例#2
0
        /// <summary>
        /// Создать пользователя.
        /// </summary>
        /// <param name="registrateUser"> DTO с регистрационными данными пользователя. </param>
        /// <returns> Возвращает результат создания. </returns>
        public static Either <Error, User> Create(DtoRegistrateUser registrateUser)
        {
            var user = new User
            {
                DisplayName = GetDisplayName(registrateUser),
                Email       = registrateUser.Email,
                UserName    = registrateUser.Email,
                FullName    = new FullName(registrateUser.Surname, registrateUser.Name, registrateUser.Patronomic)
            };

            return(Right <Error, User>(user));
        }
示例#3
0
        /// <summary>
        /// Зарегистрировать пользователя.
        /// </summary>
        /// <param name="registrateUser"> Регистрационные данные пользователя. </param>
        /// <returns> Возвращает монаду зарегистрированного пользователя. </returns>
        public Either <Error, DtoRegistratedUser> RegistrateUser(DtoRegistrateUser registrateUser)
        {
            //TODO: выглядит как-то не очень,
            // выделить Add у DbSet'а в метод расширения AddEither :: TEntity -> Either<Error, TEntity>
            var result = User.Create(registrateUser).Bind(
                user =>
            {
                _appContext.Users.Add(user);
                return(_appContext.TrySaveChanges().Bind <User>(_ => user));
            }).Bind(
                user =>
            {
                var registratedUser = new DtoRegistratedUser(user.Id);
                return(Right <Error, DtoRegistratedUser>(registratedUser));
            });

            return(result);
        }
示例#4
0
        /// <inheritdoc />
        public Either <Error, DtoRegistratedUser> RegistrateUser(DtoRegistrateUser registrateUser)
        {
            var result = _userService.RegistrateUser(registrateUser);

            return(result);
        }