コード例 #1
0
        public ActionResult CreateEmployee(EmployeeVM model)
        {
            TextInfo textInfo = CultureInfo.CurrentCulture.TextInfo;

            if (!ModelState.IsValid)
            {
                using (BankDB bankDB = new BankDB())
                {
                    model.positionList = new SelectList(bankDB.EmployeeRoles.ToList(), "Id", "Name");

                    return(View(model));
                }
            }

            using (BankDB bankDB = new BankDB())
            {
                EmployeesDTO employeesDTO = new EmployeesDTO();

                if (bankDB.Employees.Any(x => x.EmployeeLogin == model.EmployeeLogin))
                {
                    ModelState.AddModelError("loginExist", "Это имя занято, выберите другое");

                    return(View(model));
                }

                employeesDTO.EmployeeName       = textInfo.ToTitleCase(model.EmployeeName);
                employeesDTO.EmployeeSurname    = textInfo.ToTitleCase(model.EmployeeSurname);
                employeesDTO.EmployeeAge        = model.EmployeeAge;
                employeesDTO.EmployeeEmail      = model.EmployeeEmail;
                employeesDTO.EmployeePhone      = model.EmployeePhone;
                employeesDTO.EmployeeLogin      = model.EmployeeLogin;
                employeesDTO.EmployeePassword   = model.EmployeePassword;
                employeesDTO.EmployeePositionId = model.EmployeePositionId;

                EmployeeRoleDTO employeeRole = bankDB.EmployeeRoles.FirstOrDefault(x => x.Id == model.EmployeePositionId);

                employeesDTO.EmployeePosition = employeeRole.Name;
                employeesDTO.EmployeeSalary   = model.EmployeeSalary;
                employeesDTO.ClientsCount     = 0;

                bankDB.Employees.Add(employeesDTO);
                bankDB.SaveChanges();

                int id     = employeesDTO.EmployeeId;
                int roleId = bankDB.EmployeeRoles.Where(x => x.Name == employeeRole.Name).Select(x => x.Id).First();

                ListEmployeeRoleDTO listRoleEmployee = new ListEmployeeRoleDTO()
                {
                    EmployeeId     = id,
                    RoleEmployeeId = roleId
                };

                bankDB.ListEmployeeRoles.Add(listRoleEmployee);
                bankDB.SaveChanges();
            }

            TempData["OK"] = "Сотрудник добавлен";

            return(RedirectToAction("Index"));
        }
コード例 #2
0
        public ActionResult EditCategory(CategoryVM categoryVM)
        {
            TextInfo text = CultureInfo.CurrentCulture.TextInfo;

            int id = categoryVM.Id;

            if (!ModelState.IsValid)
            {
                return(View(categoryVM));
            }

            using (BankDB bankDB = new BankDB())
            {
                CategoriesDTO categoriesDTO = bankDB.Categories.Find(id);

                if (bankDB.Categories.Where(x => x.Id != categoryVM.Id).Any(x => x.Name == categoryVM.Name))
                {
                    ModelState.AddModelError("nameExist", "Категория уже создана");

                    return(View(categoryVM));
                }

                categoriesDTO.Name = text.ToTitleCase(categoryVM.Name);
                bankDB.SaveChanges();
            }

            TempData["OK"] = "Категория изменена";

            return(RedirectToAction("PageCategories"));
        }
コード例 #3
0
        public ActionResult CreateCategory(CategoryVM categoryVM)
        {
            TextInfo text = CultureInfo.CurrentCulture.TextInfo;

            if (!ModelState.IsValid)
            {
                return(View(categoryVM));
            }

            using (BankDB bankDB = new BankDB())
            {
                if (bankDB.Categories.Any(x => x.Name == categoryVM.Name))
                {
                    ModelState.AddModelError("catNameExist", "Эта категория уже создана");

                    return(View(categoryVM));
                }

                CategoriesDTO categoriesDTO = new CategoriesDTO();

                categoriesDTO.Name = text.ToTitleCase(categoryVM.Name);

                bankDB.Categories.Add(categoriesDTO);
                bankDB.SaveChanges();
            }

            TempData["OK"] = "Категория создана";

            return(View(categoryVM));
        }
コード例 #4
0
        public ActionResult BlockClient(int idClient, string reason)
        {
            using (BankDB bankDB = new BankDB())
            {
                ClientsDTO clientsDTO = bankDB.Clients.FirstOrDefault(x => x.ClientId == idClient);

                BlackListDTO blackListDTO = new BlackListDTO();

                blackListDTO.ClientId = clientsDTO.ClientId;
                blackListDTO.Login    = clientsDTO.ClientLogin;
                blackListDTO.Name     = clientsDTO.ClientName;
                blackListDTO.Surname  = clientsDTO.ClientSurname;
                blackListDTO.Email    = clientsDTO.ClientEmail;
                blackListDTO.Phone    = clientsDTO.ClientPhone;
                blackListDTO.Reason   = reason;
                clientsDTO.BanStatus  = true;

                bankDB.BlackLists.Add(blackListDTO);
                bankDB.SaveChanges();
            }

            TempData["OK"] = "Клиент занесен в черный список";

            return(RedirectToAction("Index"));
        }
コード例 #5
0
        public ActionResult CreatePage(PageVM pageVM)
        {
            if (!ModelState.IsValid)
            {
                using (BankDB bankDB = new BankDB())
                {
                    pageVM.categoryList = new SelectList(bankDB.Categories.ToList(), "Id", "Name");

                    return(View(pageVM));
                }
            }

            using (BankDB bankDB = new BankDB())
            {
                string description = null;

                PagesDTO pagesDTO = new PagesDTO();

                pagesDTO.Title = pageVM.Title;

                if (string.IsNullOrWhiteSpace(pageVM.Description))
                {
                    description = pageVM.Title.Replace(" ", "-").ToLower();
                }
                else
                {
                    description = pageVM.Description.Replace(" ", "-").ToLower();
                }

                if (bankDB.Pages.Any(x => x.Title == pageVM.Title))
                {
                    ModelState.AddModelError("titleExist", "Это имя страницы занято");

                    return(View(pageVM));
                }
                else if (bankDB.Pages.Any(x => x.Description == pageVM.Description))
                {
                    ModelState.AddModelError("descrExist", "Этот адрес страницы занят");

                    return(View(pageVM));
                }

                pagesDTO.Description    = description;
                pagesDTO.Body           = pageVM.Body;
                pagesDTO.SideBar        = pageVM.Sidebar;
                pagesDTO.PageCategoryId = pageVM.PageCategoryId;

                CategoriesDTO categories = bankDB.Categories.FirstOrDefault(x => x.Id == pageVM.PageCategoryId);

                pagesDTO.PageCategory = categories.Name;

                bankDB.Pages.Add(pagesDTO);
                bankDB.SaveChanges();
            }

            TempData["OK"] = "Страница создана";

            return(RedirectToAction("Index"));
        }
コード例 #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            Account account = db.Accounts.Find(id);

            db.Accounts.Remove(account);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #7
0
        public ActionResult DeleteCategory(int id)
        {
            using (BankDB bankDB = new BankDB())
            {
                CategoriesDTO categoriesDTO = bankDB.Categories.Find(id);

                bankDB.Categories.Remove(categoriesDTO);

                bankDB.SaveChanges();
            }

            TempData["OK"] = "Категория удалена";

            return(RedirectToAction("PageCategories"));
        }
コード例 #8
0
        public ActionResult DeletePage(int id)
        {
            using (BankDB bankDB = new BankDB())
            {
                PagesDTO pagesDTO = bankDB.Pages.Find(id);

                bankDB.Pages.Remove(pagesDTO);

                bankDB.SaveChanges();
            }

            TempData["OK"] = "Страница удалена";

            return(RedirectToAction("Index"));
        }
コード例 #9
0
        public ActionResult DeleteEmployee(int id)
        {
            using (BankDB bankDB = new BankDB())
            {
                EmployeesDTO employeesDTO = bankDB.Employees.Find(id);

                bankDB.Employees.Remove(employeesDTO);

                bankDB.SaveChanges();
            }

            TempData["OK"] = "Клиент удален";

            return(RedirectToAction("Index"));
        }
コード例 #10
0
        public ActionResult Unblock(int id, int clientId)
        {
            using (BankDB bankDB = new BankDB())
            {
                BlackListDTO blackList  = bankDB.BlackLists.Find(id);
                ClientsDTO   clientsDTO = bankDB.Clients.Find(clientId);

                clientsDTO.BanStatus = false;

                bankDB.BlackLists.Remove(blackList);
                bankDB.SaveChanges();
            }

            TempData["OK"] = "Клиент восстановлен!";

            return(RedirectToAction("Index"));
        }
コード例 #11
0
        public ActionResult EditClient(ClientProfileVM clientVM)
        {
            int id = clientVM.ClientId;

            using (BankDB bankDB = new BankDB())
            {
                clientVM.employeeList = new SelectList(bankDB.Employees.ToList(), "EmployeeId", "EmployeeSurname");
            }

            if (!ModelState.IsValid)
            {
                return(View(clientVM));
            }

            using (BankDB bankDB = new BankDB())
            {
                ClientsDTO clientsDTO = bankDB.Clients.Find(id);

                if (clientsDTO.EmployeeId != clientVM.EmployeeId)
                {
                    EmployeesDTO oldEmployee = bankDB.Employees.Where(x => x.EmployeeId == clientsDTO.EmployeeId).First();
                    oldEmployee.ClientsCount -= 1;

                    clientsDTO.EmployeeId = clientVM.EmployeeId;
                    clientsDTO.Balance    = clientVM.Balance;

                    EmployeesDTO newEmployee = bankDB.Employees.FirstOrDefault(x => x.EmployeeId == clientVM.EmployeeId);
                    newEmployee.ClientsCount += 1;
                    clientsDTO.MyEmployee     = $"{newEmployee.EmployeeName} {newEmployee.EmployeeSurname}";

                    bankDB.SaveChanges();

                    TempData["OK"] = "Информация изменена";
                }
            }

            return(RedirectToAction("Index"));
        }
コード例 #12
0
        // GET: Currency
        public ActionResult Index()
        {
            List <CurrencyVM> currencyList = new List <CurrencyVM>();

            using (BankDB bankDB = new BankDB())
            {
                if (!bankDB.Currency.Any())
                {
                    NBU_data[] parsed = JsonConvert.DeserializeObject <NBU_data[]>(new WebClient
                    {
                        Encoding = Encoding.UTF8
                    }.DownloadString(@"https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json"));

                    CurrencyDTO currencyDTO = new CurrencyDTO();

                    foreach (var item in parsed)
                    {
                        currencyDTO.CurrencyName     = item.txt;
                        currencyDTO.CurrencyCharCode = item.cc;
                        currencyDTO.CurrencyRate     = item.rate;
                        currencyDTO.ExchangeDate     = Convert.ToDateTime(DateTime.Now.ToShortDateString());

                        bankDB.Currency.Add(currencyDTO);
                        bankDB.SaveChanges();
                    }

                    currencyList = bankDB.Currency.ToArray().OrderBy(x => x.CurrencyName).Select(x => new CurrencyVM(x)).ToList();

                    return(View(currencyList));
                }
                else
                {
                    var dateToday    = DateTime.Now.ToShortDateString();
                    var exchangeDate = bankDB.Currency.Select(x => x.ExchangeDate).First().ToString("dd.MM.yyyy");

                    if (exchangeDate != dateToday)
                    {
                        NBU_data[] parsed = JsonConvert.DeserializeObject <NBU_data[]>(new WebClient
                        {
                            Encoding = Encoding.UTF8
                        }.DownloadString(@"https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json"));

                        foreach (var item in parsed)
                        {
                            CurrencyDTO currencyDTO = bankDB.Currency.FirstOrDefault(x => x.CurrencyCharCode == item.cc);

                            currencyDTO.CurrencyName     = item.txt;
                            currencyDTO.CurrencyCharCode = item.cc;
                            currencyDTO.CurrencyRate     = item.rate;
                            currencyDTO.ExchangeDate     = Convert.ToDateTime(DateTime.Now.ToShortDateString());

                            bankDB.SaveChanges();
                        }

                        currencyList = bankDB.Currency.ToArray().OrderBy(x => x.CurrencyName).Select(x => new CurrencyVM(x)).ToList();

                        return(View(currencyList));
                    }
                    else
                    {
                        currencyList = bankDB.Currency.ToArray().OrderBy(x => x.CurrencyName).Select(x => new CurrencyVM(x)).ToList();

                        return(View(currencyList));
                    }
                }
            }
        }
コード例 #13
0
        public ActionResult EditEmployee(EmployeeProfileVM model)
        {
            if (!ModelState.IsValid)
            {
                using (BankDB bankDB = new BankDB())
                {
                    model.positionList = new SelectList(bankDB.EmployeeRoles.ToList(), "Id", "Name");

                    return(View(model));
                }
            }

            if (!string.IsNullOrWhiteSpace(model.EmployeePassword))
            {
                if (!model.EmployeePassword.Equals(model.ConfirmPassword))
                {
                    ModelState.AddModelError("errorPass", "Пароли не совпадают");
                    model.EmployeePassword = "";
                    model.ConfirmPassword  = "";

                    return(View(model));
                }
            }

            using (BankDB bankDB = new BankDB())
            {
                TextInfo textInfo = CultureInfo.CurrentCulture.TextInfo;

                int    id    = model.EmployeeId;
                string email = model.EmployeeEmail;
                string phone = model.EmployeePhone;
                string login = model.EmployeeLogin;

                EmployeesDTO employeesDTO = bankDB.Employees.Find(id);

                if (bankDB.Employees.Where(x => x.EmployeeId != id).Any(x => x.EmployeeEmail == email))
                {
                    ModelState.AddModelError("emailExist", $"Адрес {email} занят");

                    return(View(model));
                }
                else if (bankDB.Employees.Where(x => x.EmployeeId != id).Any(x => x.EmployeePhone == phone))
                {
                    ModelState.AddModelError("phoneExist", $"Номер {phone} занят");

                    return(View(model));
                }
                else if (bankDB.Employees.Where(x => x.EmployeeId != id).Any(x => x.EmployeeLogin == login))
                {
                    ModelState.AddModelError("loginExist", $"Логин {login} занят");

                    return(View(model));
                }

                employeesDTO.EmployeeName    = textInfo.ToTitleCase(model.EmployeeName);
                employeesDTO.EmployeeSurname = textInfo.ToTitleCase(model.EmployeeSurname);
                employeesDTO.EmployeeAge     = model.EmployeeAge;
                employeesDTO.EmployeeEmail   = email;
                employeesDTO.EmployeePhone   = phone;
                employeesDTO.EmployeeLogin   = model.EmployeeLogin;

                employeesDTO.EmployeePositionId = model.EmployeePositionId;
                employeesDTO.EmployeeSalary     = model.EmployeeSalary;

                EmployeeRoleDTO employeeRole = bankDB.EmployeeRoles.FirstOrDefault(x => x.Id == model.EmployeePositionId);

                employeesDTO.EmployeePosition = employeeRole.Name;

                if (!string.IsNullOrWhiteSpace(model.EmployeePassword))
                {
                    employeesDTO.EmployeePassword = model.EmployeePassword;
                }

                bankDB.SaveChanges();
            }

            TempData["OK"] = "Профиль отредактирован";

            return(RedirectToAction("Index"));
        }
コード例 #14
0
        public ActionResult CreateAccount(ClientVM clientVM)
        {
            Random random = new Random();

            if (!ModelState.IsValid)
            {
                return(View("CreateAccount", clientVM));
            }

            using (BankDB bankDB = new BankDB())
            {
                if (bankDB.Clients.Any(x => x.ClientLogin == clientVM.ClientLogin))
                {
                    ModelState.AddModelError("loginExist", $"Логин {clientVM.ClientLogin} занят");

                    return(View("CreateAccount", clientVM));
                }
                else if (bankDB.Clients.Any(x => x.ClientEmail == clientVM.ClientEmail))
                {
                    ModelState.AddModelError("emailExist", "Этот адрес занят");

                    return(View("CreateAccount", clientVM));
                }
                else if (bankDB.Clients.Any(x => x.ClientPhone == clientVM.ClientPhone))
                {
                    ModelState.AddModelError("phoneExist", "Номер телефона уже используется");

                    return(View("CreateAccount", clientVM));
                }

                Dictionary <int, string> Employee = new Dictionary <int, string>();

                foreach (var item in bankDB.Employees.Where(x => x.EmployeePosition != "Администратор"))
                {
                    Employee.Add(item.EmployeeId, $"{item.EmployeeName} {item.EmployeeSurname}");
                }

                int    employeeId = Employee.ElementAt(random.Next(0, Employee.Count)).Key;
                string manager    = Employee[employeeId];

                ClientsDTO clientsDTO = new ClientsDTO()
                {
                    ClientName     = clientVM.ClientName,
                    ClientSurname  = clientVM.ClientSurname,
                    ClientAge      = clientVM.ClientAge,
                    ClientEmail    = clientVM.ClientEmail,
                    ClientPhone    = clientVM.ClientPhone,
                    ClientLogin    = clientVM.ClientLogin,
                    ClientPassword = clientVM.ClientPassword,
                    EmployeeId     = employeeId,
                    MyEmployee     = manager
                };

                EmployeesDTO employeesDTO = bankDB.Employees.Find(employeeId);
                employeesDTO.ClientsCount += 1;

                bankDB.Clients.Add(clientsDTO);
                bankDB.SaveChanges();

                int id   = clientsDTO.ClientId;
                int role = clientsDTO.Balance < 50000 ? 1 : clientsDTO.Balance >= 50000 ? 2 : clientsDTO.Balance > 200000 ? 3 : 3;

                UserRoleDTO userRole = new UserRoleDTO()
                {
                    UserId = id,
                    RoleId = role
                };

                bankDB.UserRoles.Add(userRole);
                bankDB.SaveChanges();
            }

            TempData["OK"] = "Аккаунт создан";

            return(RedirectToAction("Login", "Login"));
        }
コード例 #15
0
        public ActionResult EditClientProfile(ClientProfileVM clientProfile)
        {
            bool loginIsChanged = false;

            if (!ModelState.IsValid)
            {
                return(View("EditClientProfile", clientProfile));
            }

            if (!string.IsNullOrEmpty(clientProfile.ClientPassword))
            {
                if (!clientProfile.ClientPassword.Equals(clientProfile.ConfirmPassword))
                {
                    ModelState.AddModelError("errorPass", "пароли не совпадают");
                    clientProfile.ConfirmPassword = "";
                    clientProfile.ConfirmPassword = "";

                    return(View("EditClientProfile", clientProfile));
                }
            }

            using (BankDB bankDB = new BankDB())
            {
                string login = User.Identity.Name;

                if (login != clientProfile.ClientLogin)
                {
                    login          = clientProfile.ClientLogin;
                    loginIsChanged = true;
                }

                if (bankDB.Clients.Where(x => x.ClientId != clientProfile.ClientId).Any(x => x.ClientLogin == login))
                {
                    ModelState.AddModelError("loginMatch", $"Логин {clientProfile.ClientLogin} занят");

                    return(View("EditClientProfile", clientProfile));
                }
                else if (bankDB.Clients.Where(x => x.ClientId != clientProfile.ClientId).Any(x => x.ClientEmail == clientProfile.ClientEmail))
                {
                    ModelState.AddModelError("emailMatch", "Email занят");

                    return(View("EditClientProfile", clientProfile));
                }
                else if (bankDB.Clients.Where(x => x.ClientId != clientProfile.ClientId).Any(x => x.ClientPhone == clientProfile.ClientPhone))
                {
                    ModelState.AddModelError("phoneMatch", "Телефон занят");

                    return(View("EditClientProfile", clientProfile));
                }

                ClientsDTO clientsDTO = bankDB.Clients.Find(clientProfile.ClientId);

                clientsDTO.ClientName    = clientProfile.ClientName;
                clientsDTO.ClientSurname = clientProfile.ClientSurname;
                clientsDTO.ClientAge     = clientProfile.ClientAge;
                clientsDTO.ClientEmail   = clientProfile.ClientEmail;
                clientsDTO.ClientPhone   = clientProfile.ClientPhone;
                clientsDTO.ClientLogin   = clientProfile.ClientLogin;

                if (!string.IsNullOrEmpty(clientProfile.ClientPassword))
                {
                    clientsDTO.ClientPassword = clientProfile.ClientPassword;
                }

                bankDB.SaveChanges();
            }

            TempData["OK"] = "Данные обновлены";

            if (!loginIsChanged)
            {
                return(View("EditClientProfile", clientProfile));
            }
            else
            {
                return(RedirectToAction("LogOut"));
            }
        }
コード例 #16
0
        public ActionResult CreateEmployeeClient(ClientVM clientVM)
        {
            string login = User.Identity.Name;

            if (!ModelState.IsValid)
            {
                return(View("CreateEmployeeClient", clientVM));
            }

            using (BankDB bankDB = new BankDB())
            {
                EmployeesDTO employeesDTO = bankDB.Employees.FirstOrDefault(x => x.EmployeeLogin == login);

                if (bankDB.Clients.Any(x => x.ClientLogin == clientVM.ClientLogin))
                {
                    ModelState.AddModelError("loginExist", $"Логин {clientVM.ClientLogin} занят");

                    return(View("CreateEmployeeClient", clientVM));
                }
                else if (bankDB.Clients.Any(x => x.ClientEmail == clientVM.ClientEmail))
                {
                    ModelState.AddModelError("emailExist", "Этот адрес занят");

                    return(View("CreateEmployeeClient", clientVM));
                }
                else if (bankDB.Clients.Any(x => x.ClientPhone == clientVM.ClientPhone))
                {
                    ModelState.AddModelError("phoneExist", "Номер телефона уже используется");

                    return(View("CreateEmployeeClient", clientVM));
                }

                int    employeeId = employeesDTO.EmployeeId;
                string manager    = $"{employeesDTO.EmployeeName} {employeesDTO.EmployeeSurname}";

                ClientsDTO clientsDTO = new ClientsDTO()
                {
                    ClientName     = clientVM.ClientName,
                    ClientSurname  = clientVM.ClientSurname,
                    ClientAge      = clientVM.ClientAge,
                    ClientEmail    = clientVM.ClientEmail,
                    ClientPhone    = clientVM.ClientPhone,
                    Balance        = clientVM.Balance,
                    Credit         = clientVM.Credit,
                    Deposit        = clientVM.Deposit,
                    ClientLogin    = clientVM.ClientLogin,
                    ClientPassword = clientVM.ClientPassword,
                    EmployeeId     = employeeId,
                    MyEmployee     = manager
                };

                employeesDTO.ClientsCount += 1;

                bankDB.Clients.Add(clientsDTO);
                bankDB.SaveChanges();

                int id   = clientsDTO.ClientId;
                int role = clientsDTO.Balance < 50000 ? 1 : clientsDTO.Balance >= 50000 ? 2 : clientsDTO.Balance > 200000 ? 3 : 3;

                UserRoleDTO userRole = new UserRoleDTO()
                {
                    UserId = id,
                    RoleId = role
                };

                bankDB.UserRoles.Add(userRole);
                bankDB.SaveChanges();
            }

            TempData["OK"] = "Аккаунт создан";

            return(RedirectToAction("manager-details", "Employees"));
        }