public ActionResult ChangeDiscount(UserDTO userDto, string id, double discount) { var client = _clientLogic.Get(id); client.Discount = discount; _clientLogic.Edit(client); return PartialView("ChangeStatus",_clientLogic.GetAll()); }
public async Task<ClaimsIdentity> Authenticate(UserDTO userDto) { ClaimsIdentity claim = null; // находим пользователя ApplicationUser user = await Database.UserManager.FindAsync(userDto.Email, userDto.Password); // авторизуем его и возвращаем объект ClaimsIdentity if (user != null) claim = await Database.UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); return claim; }
// начальная инициализация бд public async Task SetInitialData(UserDTO adminDto, List<string> roles) { foreach (string roleName in roles) { var role = await Database.RoleManager.FindByNameAsync(roleName); if (role == null) { role = new ApplicationRole { Name = roleName }; await Database.RoleManager.CreateAsync(role); } } await Create(adminDto); }
public ActionResult Index(UserDTO userDto) { if (userDto.Id!=null) { var user = _clientLogic.Get(userDto.Id); if (userDto.Discount>=0 && userDto.Discount<=100) { user.Discount = userDto.Discount; } _clientLogic.Edit(user); } return RedirectToAction("Index"); }
public async Task<OperationDetails> Create(UserDTO userDto) { ApplicationUser user = await Database.UserManager.FindByEmailAsync(userDto.Email); if (user == null) { user = new ApplicationUser { Email = userDto.Email, UserName = userDto.Email }; await Database.UserManager.CreateAsync(user, userDto.Password); // добавляем роль await Database.UserManager.AddToRoleAsync(user.Id, userDto.Role); // создаем профиль клиента //todo: edited ClientProfile clientProfile = new ClientProfile { Id = user.Id, Name = userDto.Name, Discount=userDto.Discount, Address = userDto.Address,IsBlocked=userDto.IsBlocked}; Database.ClientManager.Create(clientProfile); await Database.SaveAsync(); return new OperationDetails(true, "Регистрация успешно пройдена", ""); } else { return new OperationDetails(false, "Пользователь с таким логином уже существует", "Email"); } }
public async Task<ActionResult> Login(LoginModel model) { if (ModelState.IsValid) { var userDto = new UserDTO {Email = model.Email, Password = model.Password}; var claim = await UserService.Authenticate(userDto); if (claim == null) { ModelState.AddModelError("", "Неверный логин или пароль."); } else { AuthenticationManager.SignOut(); AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = true }, claim); return RedirectToAction("Index", "Goods"); } } return View(model); }
public void ProcessOrder(Cart cart, DeliveryDTO deliveryDto, UserDTO userDto) { foreach (var item in cart.Lines) { item.PriceSale = item.Good.PriceSale; } OrderDTO orderDto = new OrderDTO(); orderDto.Status = _statusLogic.Get(1); orderDto.DateCreation = DateTime.Now; orderDto.DateSale = DateTime.Now; orderDto.User = userDto; orderDto.Sum = cart.Lines.Sum(x => x.PriceSale * x.Number); orderDto.Delivery = deliveryDto; Order order = new Order(); order.Id = orderDto.Id; order.User = _clientRepository.Get(userDto.Id); order.DateCreation = DateTime.Now; order.DateSale = DateTime.Now; order.Sum = orderDto.Sum; var delivery = Mapper.Map<DeliveryDTO, Delivery>(deliveryDto); var status = Mapper.Map<StatusDTO, Status>(_statusLogic.Get(1)); order.Status = status; order.Delivery = delivery; _repository.Add(order); var items = cart.Lines; foreach (OrderItemDTO itemDto in items) { itemDto.Good = _goodLogic.Get(itemDto.Good.Id); itemDto.Order = new OrderDTO { Id = order.Id }; _orderItemLogic.Add(itemDto); } }
public void Edit(UserDTO userDto) { var client = Mapper.Map<UserDTO, ClientProfile>(userDto); _repository.Edit(client); }
public async Task<ActionResult> Register(RegisterModel model) { await SetInitialDataAsync(); if (ModelState.IsValid) { var userDto = new UserDTO { Email = model.Email, Password = model.Password, Address = model.Address, Name = model.Name, Role = "user", //todo: edited IsBlocked = false }; var operationDetails = await UserService.Create(userDto); //login var claim = await UserService.Authenticate(userDto); if (claim == null) { ModelState.AddModelError("", "Неверный логин или пароль."); } else { AuthenticationManager.SignOut(); AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = true }, claim); return View("SuccessRegister"); } // ModelState.AddModelError(operationDetails.Property, operationDetails.Message); } return View(model); }