Example #1
0
        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());
        }
Example #2
0
 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;
 }
Example #3
0
 // начальная инициализация бд
 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);
 }
Example #4
0
        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");
        }
Example #5
0
 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");
     }
 }
Example #6
0
 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);
 }
Example #7
0
        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);
            }
        }
Example #8
0
 public void Edit(UserDTO userDto)
 {
     var client = Mapper.Map<UserDTO, ClientProfile>(userDto);
     _repository.Edit(client);
 }
Example #9
0
        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);
        }