public async Task <Result <PanelUserDTO> > AddUserAsync(PanelUserDTO model) { try { Result <PanelUserDTO> res = new Result <PanelUserDTO>(); EFRepository <PanelUser> repo = _unitOfWork.EntityRepository <PanelUser>(); if (await repo.GetExistsAsync((PanelUser w) => w.IsDeleted == false && w.Email == model.Email)) { return(res.Fail("Bu mail (" + model.Email + ") ile kullanıcı tanımlanmış!")); } PanelUser panelUser = Mapper.Map <PanelUserDTO, PanelUser>(model); string pass = PasswordHelper.GeneratePassword(6); panelUser.Password = PasswordHelper.MD5Hash(pass); panelUser.CreatedDate = DateTime.UtcNow; panelUser.Place = null; panelUser.Company = null; PanelUser created = await repo.CreateAsync(panelUser); await _unitOfWork.SaveChangesAsync(); if (model.SendMail) { await _emailSender.Send(new string[1] { model.Email }, "Üyeliğiniz oluşturuldu!", "Yetkilim panele giriş şifreniz: " + pass); } return(Result.Data(Mapper.Map <PanelUser, PanelUserDTO>(created))); } catch (Exception ex) { throw; } }
public async Task <Result> UpdateUserAsync(int id, PanelUserDTO user) { EFRepository <PanelUser> repo = _unitOfWork.EntityRepository <PanelUser>(); PanelUser item = await repo.GetFirstAsync((PanelUser w) => w.IsDeleted == false && w.Id == id, null); if (item == null) { return(Result.Fail("Kullanıcı bulunamadı!")); } item.Name = user.Name; item.PlaceId = user.PlaceId; item.Role = user.Role; item.ModifiedDate = DateTime.UtcNow; if (item.Email != user.Email) { if (await repo.GetExistsAsync((PanelUser w) => w.IsDeleted == false && w.Email == user.Email)) { return(Result.Fail("Bu mail (" + user.Email + ") ile kullanıcı tanımlanmış!")); } item.Email = user.Email; string text = PasswordHelper.GeneratePassword(6); item.Password = PasswordHelper.MD5Hash(text); await _emailSender.Send(new string[1] { user.Email }, "Üyeliğiniz oluşturuldu!", "Yetkilim panele giriş şifreniz: " + text); } await _unitOfWork.SaveChangesAsync(); return(Result.Success()); }
public async Task <IActionResult> Create(CompanyFormModel model) { if (this.ModelState.IsValid) { try { if (string.IsNullOrWhiteSpace(model.ManagerName) || string.IsNullOrWhiteSpace(model.ManagerEmail)) { model.IsSuccess = false; model.FormMessage = "Firma yetkilisi bilgileri girilmelidir."; return(this.View((object)model)); } IFormFile logoFile = model.LogoFile; string uniqueFileName = null; if (logoFile != null && logoFile.Length > 0) { uniqueFileName = FileHelper.GetUniqueFileName(logoFile.FileName); if (string.IsNullOrWhiteSpace(_hostingEnvironment.WebRootPath)) { _hostingEnvironment.WebRootPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot"); } string path = Path.Combine(_hostingEnvironment.WebRootPath, "admin/uploads"); string path2 = Path.Combine(path, uniqueFileName); using (FileStream stream = new FileStream(path2, FileMode.Create)) { await logoFile.CopyToAsync((Stream)stream, default(CancellationToken)); } } CompanyDetailDTO companyDetailDTO = Mapper.Map <CompanyFormModel, CompanyDetailDTO>(model); companyDetailDTO.Image = uniqueFileName; PanelUserDTO manager = new PanelUserDTO { Email = model.ManagerEmail, Name = model.ManagerName, Surname = model.ManagerSurname }; Result <CompanyDetailDTO> result = await _companyService.AddCompanyAsync(companyDetailDTO, manager); model.FormMessage = result.FormMessage; model.IsSuccess = result.IsSuccess; if (model.IsSuccess) { model.FormMessage = "İşleminiz başarılı bir şekilde gerçekleştirildi."; } return(this.View((object)model)); } catch (Exception ex) { LoggerExtensions.LogError(_logger, ex, "Create Error", Array.Empty <object>()); model.IsSuccess = false; model.FormMessage = "İşleminiz gerçekleştirilemedi."; return(this.View((object)model)); } } return(this.View((object)model)); }
public async Task <Result <PanelUserDTO> > GetUserAsync(string email, string password) { Result <PanelUserDTO> res = new Result <PanelUserDTO>(); string hashedPassword = PasswordHelper.MD5Hash(password); PanelUser panelUser = await EntityFrameworkQueryableExtensions.FirstOrDefaultAsync <PanelUser>((IQueryable <PanelUser>) EntityFrameworkQueryableExtensions.Include <PanelUser, Company>(_unitOfWork.EntityRepository <PanelUser>().GetQueryable((PanelUser w) => w.IsDeleted == false && w.Email == email && w.Password == hashedPassword && !w.IsDeleted, null), (Expression <Func <PanelUser, Company> >)((PanelUser w) => w.Company)), default(CancellationToken)); if (panelUser == null) { return(res.Fail("User yok!")); } PanelUserDTO dataVal = Mapper.Map <PanelUser, PanelUserDTO>(panelUser); return(res.Success(dataVal)); }
public async Task <IActionResult> Login(AdminLoginViewModel model) { if (this.ModelState.IsValid) { try { Result <PanelUserDTO> result = await _panelUserService.GetUserAsync(model.Email, model.Password); if (!result.IsSuccess) { model.FormMessage = "E-Posta ya da Şifre bilgisi yanlış, lütfen bilgilerinizi kontrol edin."; return(this.View((object)model)); } PanelUserDTO data = result.Data; List <Claim> claims = new List <Claim> { new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", data.Id.ToString()), new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", data.Name), new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", data.Email), new Claim("CompanyId", data.CompanyId.ToString()), new Claim("PlaceId", data.PlaceId.ToString()), new Claim("CompanyName", data.Company.Name), new Claim("http://schemas.microsoft.com/ws/2008/06/identity/claims/role", data.Role.ToString()) }; ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(claims, "ClaimIdentity")); var task = AuthenticationHttpContextExtensions.SignInAsync(this.HttpContext, "AdminAreaCookies", claimsPrincipal); task.Wait(); if (task.IsCompletedSuccessfully) { var temp = this.User.Claims; } else { } return(this.RedirectToAction("Index", "Manage")); } catch (Exception ex) { LoggerExtensions.LogError(_logger, ex, "Panel Login Error", Array.Empty <object>()); model.FormMessage = "İşleminiz gerçekleştirilemedi."; return(this.View((object)model)); } } return(this.View((object)model)); }
public async Task <ViewResult> Update(int id, PanelUserFormModel model) { model.UserId = id; FillPanelUserFormModel(model); if (this.ModelState.IsValid) { try { PanelUserDTO panelUserDTO = Mapper.Map <PanelUserFormModel, PanelUserDTO>(model); if (model.Role == UserRole.Dealer && base.CurrentUser.Role == UserRole.SuperAdmin) { Place place = _placeService.GetPlaceQueryable().FirstOrDefault((Place w) => (object)(int?)w.Id == (object)model.PlaceId); if (place != null) { panelUserDTO.CompanyId = place.CompanyId; } } Result result = await _panelUserService.UpdateUserAsync(id, panelUserDTO); model.FormMessage = result.FormMessage; model.IsSuccess = result.IsSuccess; if (model.IsSuccess) { model.FormMessage = "İşleminiz başarılı bir şekilde gerçekleştirildi."; } return(this.View((object)model)); } catch (Exception ex) { LoggerExtensions.LogError(_logger, ex, "POST Update Error {0}", new object[1] { id }); model.FormMessage = "İşleminiz gerçekleştirilemedi."; return(this.View((object)model)); } } return(this.View((object)model)); }
public async Task <IActionResult> Create(PanelUserFormModel model) { try { FillPanelUserFormModel(model); if (!this.ModelState.IsValid) { return(this.View((object)model)); } if (string.IsNullOrWhiteSpace(model.Email)) { model.IsSuccess = false; model.FormMessage = "E-posta adresi gerekmektedir"; return(this.View((object)model)); } if (string.IsNullOrWhiteSpace(model.Name)) { model.IsSuccess = false; model.FormMessage = "Ad Soyad gerekmektedir"; return(this.View((object)model)); } if (model.Role == UserRole.Dealer && !model.PlaceId.HasValue) { model.IsSuccess = false; model.FormMessage = "Şube yetkilisi eklemek için mekan seçmeniz gerekmektedir."; return(this.View((object)model)); } if (model.Role == UserRole.Admin && !model.CompanyId.HasValue) { model.IsSuccess = false; model.FormMessage = "Firma yetkilisi eklemek için mekan seçmeniz gerekmektedir."; return(this.View((object)model)); } var companyId = 0; PanelUserDTO panelUserDTO = new PanelUserDTO { Name = model.Name, Email = model.Email, Role = model.Role, CreatedDate = DateTime.UtcNow, CompanyId = companyId = base.CurrentUser.CompanyId, PlaceId = model.PlaceId }; var misafirIsletmemi = false; if (model.Role == UserRole.Dealer) { Place place = _placeService.GetPlaceQueryable().FirstOrDefault((Place w) => (object)(int?)w.Id == (object)model.PlaceId); if (place != null) { panelUserDTO.CompanyId = place.CompanyId; misafirIsletmemi = string.Equals(place.Guest, "Evet", StringComparison.InvariantCultureIgnoreCase); } } if (model.Role == UserRole.Admin) { panelUserDTO.CompanyId = model.CompanyId.Value; var company = _companyService.GetCompanyQueryable().AsNoTracking().First(x => x.Id == model.CompanyId); misafirIsletmemi = string.Equals(company.Demo, "Evet", StringComparison.InvariantCultureIgnoreCase); } panelUserDTO.SendMail = !misafirIsletmemi; Result <PanelUserDTO> result = await _panelUserService.AddUserAsync(panelUserDTO); model.FormMessage = result.FormMessage; model.IsSuccess = result.IsSuccess; if (model.IsSuccess) { model.FormMessage = "İşleminiz başarılı bir şekilde gerçekleştirildi."; } return(this.View((object)model)); } catch (Exception ex) { LoggerExtensions.LogError(_logger, ex, "Create Error", Array.Empty <object>()); model.IsSuccess = false; model.FormMessage = "İşleminiz gerçekleştirilemedi."; return(this.View((object)model)); } }
public async Task <Result <CompanyDetailDTO> > AddCompanyAsync(CompanyDetailDTO company, PanelUserDTO manager) { Result <CompanyDetailDTO> res = new Result <CompanyDetailDTO>(); _unitOfWork.BeginTransaction(IsolationLevel.ReadCommitted); try { Company entity = Mapper.Map <CompanyDetailDTO, Company>(company); Company created = await _unitOfWork.EntityRepository <Company>().CreateAsync(entity); await _unitOfWork.SaveChangesAsync(); manager.CompanyId = created.Id; manager.Role = UserRole.Admin; if (!string.Equals(company.Demo, "Evet", StringComparison.InvariantCultureIgnoreCase)) { Result <PanelUserDTO> result = await _panelUserService.AddUserAsync(manager); if (!result.IsSuccess) { _unitOfWork.Rollback(); return(res.Fail(result.Messages)); } } _unitOfWork.Commit(); return(Result.Data(Mapper.Map <Company, CompanyDetailDTO>(created))); } catch (Exception) { _unitOfWork.Rollback(); throw; } }