//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); }
/// <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); } }); }