private string GenerateLoginCode(UnitModel request) { try { LogHelper.Log.Debug("GenerateLoginCode start"); var source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var country = _context.Dictionaries.FirstOrDefault(x => x.Id == request.CountryId.Value); if (country == null) { LogHelper.Log.Error("Не удалось найти Гражданство в справочнике"); throw new Exception("Не удалось найти Гражданство в справочнике"); } var i1 = source.IndexOf(country.Code[0]); var i2 = source.IndexOf(country.Code[1]); var code = (i1 * source.Length) + i2; var codeStr = code.ToString().PadLeft(3, '0'); var users = Membership.GetAllUsers(); //LogHelper.Log.DebugFormat("users.Count: {0}", users.Count); var mUsers = users.Cast <MembershipUser>(); //LogHelper.Log.DebugFormat("mUsers.Count: {0}", mUsers.Count()); var count = mUsers.Count(x => x.CreationDate > DateTime.Today) + 1; //LogHelper.Log.DebugFormat("count: {0}", count); //var count = _context.Units.Count(x => x.CreatedDate > DateTime.Today) + 1; var dd = DateTime.Today.ToString("yyyyMMdd").Substring(2); return(codeStr + dd + count.ToString().PadLeft(3, '0')); } catch (Exception ex) { LogHelper.Log.Error("GenerateLoginCode Exception", ex); throw; } }
public async Task <JsonResult> PostRequest(UnitModel request, int personType, string password, bool isEcp) { LogHelper.Log.Debug("PostRequest start"); string login = null; if (isEcp) { password = Membership.GeneratePassword(8, 2); } if (!isEcp && (personType == 2 || personType == 3)) { request.Iin = GenerateLoginCode(request); LogHelper.Log.DebugFormat("Сгенерирован 12значный код {0} для пользователя {1} {2} {3}", request.Iin, request.LastName, request.FirstName, request.MiddleName); } login = request.Iin; if (_context.Employees.Count(x => x.Email.Equals(request.Email, StringComparison.InvariantCultureIgnoreCase)) > 0) { return(Json(new MessageModel { IsError = true, Message = "Пользователь с таким емэйлом уже есть!" }, JsonRequestBehavior.AllowGet)); } var user = AccountServices.Instance.CreateUser(login, password); if (!user.IsError) { var result = AccountServices.Instance.PostRequest(_context, request, personType); if (!result.IsError) { var template = EmailService.Instance.GetTemplate(new EmailTemplateModel { Type = 2, HeadMessage = "Регистрация", Title = "Экспертиза лекарственных средств, изделий медицинского назначения и медицинской техники", Message = $"Ваш логин для входа {Environment.NewLine} логин: {login}" // , {Environment.NewLine} пароль: {user.Message} }); LogHelper.Log.DebugFormat("Успешно зарегистрирован пользователь с логином {0}, ФИО {1} {2} {3}", request.Iin, request.LastName, request.FirstName, request.MiddleName); await EmailService.Instance.SendEmail(request.Email, "Экспертиза лекарственных средств, изделий медицинского назначения и медицинской техники", template); } return(Json(result, JsonRequestBehavior.AllowGet)); } else { return(Json(user, JsonRequestBehavior.AllowGet)); } }