public Result Create(AdminUserDto dto) { var validator = new AdminUserValidator(_adminUserRepository); var result = validator.ValidateResult(dto); if (!result.Success) { return(result); } var entity = Mapper.Map <AdminUser>(dto); entity.Salt = SecurityHelper.GenerateSalt(); entity.Password = SecurityHelper.GenerateHash(dto.Password, entity.Salt); _adminUserRepository.Insert(entity); foreach (var roleId in dto.Roles) { entity.Roles.Add(_adminRoleRepository.Find(roleId)); } _unitOfWork.Commit(); AdminUserCacheManager.ClearCache(); result.Id = entity.Id; return(result.SetSuccess(Messages.RecordSaved)); }
public Result Edit(int id, AdminUserDto dto) { dto.Id = id; var validator = new AdminUserValidator(_adminUserRepository); var result = validator.ValidateResult(dto); if (!result.Success) { return(result); } var entity = _adminUserRepository.AsNoTracking.Include(i => i.Roles) .FirstOrDefault(s => s.Id == dto.Id); if (entity == null) { return(new Result().SetBlankRedirect()); } Mapper.Map <AdminUser>(dto, entity); if (!string.IsNullOrEmpty(dto.Password)) { entity.Salt = SecurityHelper.GenerateSalt(); entity.Password = SecurityHelper.GenerateHash(dto.Password, entity.Salt); } _adminUserRepository.Update(entity); ChildRoleUpdate(entity, dto); _unitOfWork.Commit(); AdminUserCacheManager.ClearCache(); return(result.SetSuccess(Messages.RecordSaved)); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { Register(container); if (_environment.Name == EnvironmentType.Production) { RegisterMonoPersistence(container); } else { RegisterPersistence(container); } RegisterRepository(container); RegisterCrypo(container); pipelines.OnError += (ctx, ex) => { container.Resolve <IMetric>().Count("error"); Logger.Error(ex); var isAjaxRequest = ctx.Request.IsAjaxRequest(); if (isAjaxRequest) { var result = new JObject { { "isSuccess", false }, { "data", "Internal error" } }; var newContent = result.ToString(); var output = Encoding.UTF8.GetBytes(newContent); return(new Response { Contents = stream => stream.Write(output, 0, output.Length), ContentType = "application/json", StatusCode = HttpStatusCode.InternalServerError }); } return(null); }; pipelines.AfterRequest += (ctx) => { var isAjaxRequest = ctx.Request.IsAjaxRequest(); var isJsonResponse = ctx.Response.ContentType.Contains("json"); if (isAjaxRequest && isJsonResponse) { using (var memStream = new MemoryStream()) { ctx.Response.Contents.Invoke(memStream); var textResponse = Encoding.UTF8.GetString(memStream.ToArray()); var result = new JObject(); if (TryParseJObject(textResponse, out var jo)) { result = new JObject { { "isSuccess", true }, { "data", jo } }; } else if (TryParseJArray(textResponse, out var ja)) { result = new JObject { { "isSuccess", true }, { "data", ja } }; } var newContent = result.ToString(); var output = Encoding.UTF8.GetBytes(newContent); ctx.Response.Contents = stream => stream.Write(output, 0, output.Length); } } }; var hmacProvider = container.Resolve <IHmacProvider>(); var adminRepository = container.Resolve <IAdminRepository>(); var adminUserValidator = new AdminUserValidator(hmacProvider, adminRepository, _environment); pipelines.EnableBasicAuthentication(new BasicAuthenticationConfiguration(adminUserValidator, "admin")); }