Beispiel #1
0
        //public abstract Response_Registration User_Registration(Request_Registration request);
        public static Response_Registration _User_Registration(Request_Registration request)
        {
            var result = new Response_Registration();

            DCT.DCT.Execute(c =>
            {
                var emailHash = CryptographyHelper.StringToSha256String(request.Email, request.Password);
                //Проверка полученных данных
                if (string.IsNullOrWhiteSpace(emailHash) || string.IsNullOrWhiteSpace(request.Email))
                {
                    result.Comment   = "Указаны не корректные для регистрации логин или пароль";
                    result.StateEnum = Objects.Message.MessageState.NotSuccesfull;
                    return;
                }
                //Проверка регистрации пользователя по почте
                var up = MainDbAPI.UserProfileByEmail(request.Email);
                if (up != null)
                {
                    result.Comment   = "Пользователь с указанным Email уже зарегистрирован";
                    result.StateEnum = Objects.Message.MessageState.NotSuccesfull;
                    return;
                }
                //Создаю приложение
                var application = MainDbAPI.ApplicationAccessCreate();
                //Создаю профиль
                var profile = MainDbAPI.UserProfileCreate(request, application.Id);
                //Создаю ключи авторизации - телефон, почта, email(базовый)
                //- Email
                var emailAccess = MainDbAPI.UserAccessCreate(profile.Id, profile.Email, emailHash);
                //- Phone var phoneAccess = MainDbAPI.UserAccessCreate(profile.Id, profile.Phone, phoneHash
                //- Login var loginAccess = MainDbAPI.UserAccessCreate(profile.Id, profile.Login, loginHash);
                //Создаю сессию
                var userSession = MainDbAPI.UserSessionCreate(profile.Id);
                c.SaveChanges();
                result.Comment    = "Пользователь успешно зарегистрирован!";
                result.StateEnum  = Objects.Message.MessageState.Succesfull;
                result.SessionUID = userSession.Id.ToString();
                result.HashUID    = emailHash;
            }, continueExceptionMethod: (x, ex) =>
            {
                result.Error     = ex.ToString();
                result.StateEnum = Objects.Message.MessageState.Error;
            });
            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// Создание нового профиля пользователя
        /// </summary>
        /// <param name="firstName"></param>
        /// <param name="secondName"></param>
        /// <param name="middleName"></param>
        /// <param name="email"></param>
        /// <param name="phone"></param>
        /// <param name="birthday"></param>
        /// <param name="hashEmail"></param>
        /// <returns></returns>
        public static UserProfile UserProfileCreate(Request_Registration request, Guid applicationId)
        {
            var result = default(UserProfile);

            DCT.DCT.Execute(c =>
            {
                //Создаю новый профиль клиента
                result = new UserProfile()
                {
                    Birthday   = request.Birthday,
                    FirstName  = request.FirstName,
                    SecondName = request.SecondName,
                    MiddleName = request.MiddleName,
                    Phone      = request.Phone,
                    Email      = request.Email,
                };
                result.ApplicationId = applicationId;
                result.StateEnum     = UserProfileState.Enable;
            });
            return(result);
        }
        public void Registration(Action <bool> callback, string email, string phone, string password, string firstName, string secondName, string middleName, DateTime?birthday = null)
        {
            DCT.DCT.ExecuteAsyncQueue <bool>(c =>
            {
                var result  = false;
                birthday    = birthday == null ? new DateTime(1900, 01, 01) : birthday;
                var request = new Request_Registration()
                {
                    Email      = email,
                    Birthday   = birthday.Value,
                    Phone      = phone,
                    Password   = password,
                    FirstName  = firstName,
                    SecondName = secondName,
                    MiddleName = middleName,
                };
                var response = Execute <Request_Registration, Response_Registration>(request);
                switch (response.StateEnum)
                {
                case Objects.Message.MessageState.Succesfull:
                    result = true;
                    SetHash(response.HashUID, response.SessionUID);
                    break;

                default:
                    break;
                }
                return(result);
            }, complete: (c, r) => {
                if (callback == null)
                {
                    ConsoleHelper.Send("MainServiceClient", "В методе Registration не реализован Callback");
                }
                else
                {
                    callback(r);
                }
            });
        }