Esempio n. 1
0
        public async Task <IActionResult> Edit(int id)
        {
            Customer customer = await unitOfWork.Customers.Get(id);

            ApplicationUser user = await userManager.FindByEmailAsync(customer.Email);

            var userRoles = await userManager.GetRolesAsync(user);

            var allRoles = roleManager.Roles.ToList();

            if (customer == null)
            {
                return(NotFound());
            }

            var model = new EditCustomerView
            {
                Id         = customer.CustomerId,
                FirstName  = customer.Name,
                SecondName = customer.Surname,
                Phone      = customer.PhoneNumber,
                Email      = customer.Email,
                AllRoles   = allRoles,
                UserRoles  = userRoles
            };

            return(View(model));
        }
Esempio n. 2
0
        public async Task <IActionResult> CustomerSettingPage(EditCustomerView model)
        {
            Customer customer = await unitOfWork.Customers.Get(model.Id);

            if (customer != null)
            {
                foreach (var number in model.Phone)
                {
                    if (!char.IsDigit(number))
                    {
                        ViewBag.Message = "Phone number is invalid!";
                        return(View("EditPhoneError"));
                    }
                }

                customer.FirstName  = model.FirstName;
                customer.SecondName = model.SecondName;
                customer.Phone      = model.Phone;

                ApplicationUser user = await userManager.FindByEmailAsync(model.Email);

                user.UserName = model.Email;

                unitOfWork.Customers.Update(customer);
                await unitOfWork.SaveAsync();
            }

            return(RedirectToAction("Index", "Home"));
        }
Esempio n. 3
0
        private void EditCustomer()
        {
            var vm = new EditCustomerViewModel(new UnitOfWorkFactory(), SelectedCustomer);

            vm.Init();
            var window = new EditCustomerView(vm);

            if (window.ShowDialog() ?? false)
            {
                CollectionViewSource.GetDefaultView(CustomerList).Refresh();
            }
        }
Esempio n. 4
0
        private void AddCustomer()
        {
            var view      = new EditCustomerView();
            var viewModel = (view.DataContext as EditCustomerViewModel);

            viewModel.Customer = new Customer();
            var result = view.ShowDialog();

            if (result.Value)
            {
                this.Customers.Add(viewModel.Customer);
            }
        }
Esempio n. 5
0
        private void NewCustomer()
        {
            var customer = new Customer();
            var vm       = new EditCustomerViewModel(new UnitOfWorkFactory(), customer);

            vm.Init();
            var window = new EditCustomerView(vm);

            if (window.ShowDialog() ?? false)
            {
                CustomerList.Add(customer);
            }
        }
Esempio n. 6
0
        private void OnEditCustomerCommand(object obj)
        {
            var e = new EditCustomerViewModel(SelectedCustomer);
            var editCustomerDialog = new EditCustomerView();

            e.RequestClose += (s, e) => editCustomerDialog.Close();

            editCustomerDialog.DataContext = e;
            editCustomerDialog.Closed     += (s, e) =>
            {
                LoadData();
            };
            editCustomerDialog.ShowDialog();
        }
        public async Task <IActionResult> Edit(EditCustomerView model, List <string> roles)
        {
            if (ModelState.IsValid)
            {
                Customer customer = await unitOfWork.Customers.Get(model.Id);

                ApplicationUser user = await userManager.FindByEmailAsync(customer.Email);

                if (user != null && customer != null)
                {
                    user.Email      = model.Email;
                    user.UserName   = model.FirstName + model.SecondName;
                    user.UpdateTime = DateTime.Now;

                    var userRoles = await userManager.GetRolesAsync(user);

                    var allRoles = roleManager.Roles.ToList();

                    var addedRoles   = roles.Except(userRoles);
                    var removedRoles = userRoles.Except(roles);

                    await userManager.AddToRolesAsync(user, addedRoles);

                    await userManager.RemoveFromRolesAsync(user, removedRoles);

                    customer.FirstName  = model.FirstName;
                    customer.SecondName = model.SecondName;
                    customer.Phone      = model.Phone;
                    customer.Email      = model.Email;

                    unitOfWork.Customers.Update(customer);
                    await unitOfWork.SaveAsync();

                    var result = await userManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        foreach (var error in result.Errors)
                        {
                            ModelState.AddModelError(string.Empty, error.Description);
                        }
                    }
                }
            }
            return(View(model));
        }
Esempio n. 8
0
        public async Task <IActionResult> CustomerSettingPage(EditCustomerView model)
        {
            Customer customer = await unitOfWork.Customers.Get(model.Id);

            customer.FirstName  = model.FirstName;
            customer.SecondName = model.SecondName;
            customer.Phone      = model.Phone;

            ApplicationUser user = await userManager.FindByEmailAsync(model.Email);

            user.UserName = model.Email;

            unitOfWork.Customers.Update(customer);
            await unitOfWork.SaveAsync();

            return(RedirectToAction("Index", "Home"));
        }
Esempio n. 9
0
        private void ModifyCustomer(Customer customer)
        {
            if (customer == null)
            {
                return;
            }
            var view      = new EditCustomerView();
            var viewModel = (view.DataContext as EditCustomerViewModel);

            viewModel.Customer = ObjectUtility.DeepCopy(customer);
            var result = view.ShowDialog();

            if (result.Value)
            {
                this.Customers.Remove(customer);
                this.Customers.Add(viewModel.Customer);
            }
        }
Esempio n. 10
0
        public IActionResult CustomerSettingPage()
        {
            string   name     = User.Identity.Name;
            Customer customer = unitOfWork.Customers.GetAll().Where(c => c.Email == name)
                                .FirstOrDefault();

            if (customer != null)
            {
                EditCustomerView model = new EditCustomerView
                {
                    Id         = customer.Id,
                    FirstName  = customer.FirstName,
                    SecondName = customer.SecondName,
                    Phone      = customer.Phone,
                    Email      = customer.Email,
                };


                return(View(model));
            }

            return(RedirectToAction("Index", "Home"));
        }
Esempio n. 11
0
        public async Task <IActionResult> Edit(EditCustomerView model, List <string> roles)
        {
            if (ModelState.IsValid)
            {
                Customer customer = await unitOfWork.Customers.Get(model.Id);

                ApplicationUser user = await userManager.FindByEmailAsync(customer.Email);

                if (user != null && customer != null)
                {
                    if (!roles.Contains("manager") && model.MakePsychologist)
                    {
                        roles.Add("manager");
                    }
                    user.Email      = model.Email;
                    user.UserName   = model.Email;
                    user.UpdateTime = DateTime.Now;

                    var userRoles = await userManager.GetRolesAsync(user);

                    var allRoles = roleManager.Roles.ToList();

                    var addedRoles   = roles.Except(userRoles);
                    var removedRoles = userRoles.Except(roles);

                    await userManager.AddToRolesAsync(user, addedRoles);

                    await userManager.RemoveFromRolesAsync(user, removedRoles);

                    if (model.MakePsychologist)
                    {
                        var psychologist = new Psychologist
                        {
                            Name        = model.FirstName,
                            Surname     = model.SecondName,
                            BirthDate   = customer.BirthDate,
                            Email       = model.Email,
                            PhoneNumber = model.Phone
                        };

                        await unitOfWork.Psychologists.Create(psychologist);

                        await unitOfWork.Customers.Delete(customer.CustomerId);

                        await unitOfWork.SaveAsync();
                    }
                    else
                    {
                        customer.Name        = model.FirstName;
                        customer.Surname     = model.SecondName;
                        customer.PhoneNumber = model.Phone;
                        customer.Email       = model.Email;

                        unitOfWork.Customers.Update(customer);
                        await unitOfWork.SaveAsync();

                        var result = await userManager.UpdateAsync(user);

                        if (result.Succeeded)
                        {
                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            foreach (var error in result.Errors)
                            {
                                ModelState.AddModelError(string.Empty, error.Description);
                            }
                        }
                    }
                }
            }

            return(RedirectToAction("Index", "Customer"));
        }