public static int InsertActivation(NewActivationReq newActivation) { try { var activation = new Activation() { UserId = newActivation.UserId, ActivationCode = newActivation.ActicationCode.ToString(), IsActive = true }; using (var dbCtx = new MSDbContext()) { dbCtx.Activations.Add(activation); int result = dbCtx.SaveChanges(); if (result == 1) { return(activation.Id); } else { throw new Exception(); } } } catch (Exception e) { var ex = new InsertIntoDataBaseException(ExceptionMessage.InsertIntoActivationsException, e); Logger.Log.Error(ex.Message, ex); throw ex; } }
private Result <NewUserResp> AddNewUserOperation() { Result <DMLResultResp> validationResult = IsNewUserValid(_newUser); Result <NewUserResp> result; if (!validationResult.IsOk) { result = new Result <NewUserResp>(null, validationResult.Error, false); } else { bool smsSentResult; int activationCodeId; DA.Entities.User user = null; try { user = DA.Queries.UserAccounts.SelectUserByTel(_newUser.Tel); } catch (Exception e) { Logger.Log.Error(e.Message, e); result = new Result <NewUserResp>(null, new Error(ErrorMessage.LoadUserByTelError), false); return(result); } if (user == null) { int userId; try { userId = DA.Queries.UserAccounts.InsertUser(_newUser); } catch (Exception e) { Logger.Log.Error(e.Message, e); result = new Result <NewUserResp>(null, new Error(ErrorMessage.AddNewUserError), false); return(result); } NewActivationReq newActivation = new NewActivationReq(userId, Utility.Random.GetRandomNumber()); try { activationCodeId = DA.Queries.UserAccounts.InsertActivation(newActivation); } catch (InsertIntoDataBaseException e) { DA.Queries.UserAccounts.DeleteUser(userId); Logger.Log.Error(e.Message, e); result = new Result <NewUserResp>(null, new Error(ErrorMessage.AddNewActivationError), false); return(result); } smsSentResult = Message.SendSms(_newUser.Tel, String.Format(Message.ActivationCodeMessage, newActivation.ActicationCode, _newUser.Name)); } else { NewActivationReq newActivation = new NewActivationReq(user.Id, Utility.Random.GetRandomNumber()); activationCodeId = DA.Queries.UserAccounts.InsertActivation(newActivation); smsSentResult = Message.SendSms(_newUser.Tel, String.Format(Message.ActivationCodeMessage, newActivation.ActicationCode, _newUser.Name)); } result = new Result <NewUserResp>(new NewUserResp(activationCodeId, smsSentResult), null, true); } return(result); }