public void Create(FullUser fullUser) { if ( fullUser.IsValid() && fullUser.Worker.IsValid(_workerServices.Read().Select(x => x.PassportNumber).ToList()) && (fullUser?.User?.IsValid(_userServices.Read().Select(y => y.Login).ToList()) ?? true) ) { try { _workerServices.Create(fullUser.Worker); } catch (Exception) { throw; } if (fullUser.User != null) { fullUser.User = _userServices.Create(fullUser.User); foreach (var item in fullUser.Roles) { _userRoleServices.Create(new UserRole() { UserId = fullUser.User.Id, RoleId = item.Id }); } } } }
public ActionResult EditWorkersInformation() { FullUser user = HttpContext.Session.GetJson <FullUser>("user"); List <Worker> workers = _workerServises.Read().Where(x => x.Equals(user.Worker) == false).ToList(); return(View("WorkersList", workers)); }
public IActionResult MakingAnOrder() { Cart cart = new Cart(); cart.GetFromCoockie(HttpContext); if ((cart?.OrderLine?.Count() ?? 0) == 0) { ModelState.AddModelError("", "The shopping cart is empty"); return(RedirectToAction("ShowCart", "Cart")); } List <Worker> workers = _workerServises.Read(); List <FullUser> users = new List <FullUser>(); foreach (var item in workers) { users.Add(_fullUserServices.Read(item.PassportNumber)); } ViewData["Master"] = users.Where(x => x.Roles.Count(y => y.Title.Equals("Master")) != 0); ViewData["Manager"] = users.Where(x => x.Roles.Count(y => y.Title.Equals("Manager")) != 0); ViewData["Client"] = _clientServices.Read(); FullUser user = new FullUser(); user.GetUserFromCookie(HttpContext); ViewBag.ManagerId = user.Worker.PassportNumber; return(View()); }
public Dictionary <Worker, decimal> GetInformationAboutProfitByMasters(DateTime?from, DateTime?to) { List <Order> orders = _orderServices.ReadComplitedOrders(from, to); var grouped = orders.GroupBy(x => x.MasterId); List <Worker> workers = new List <Worker>(); foreach (var item in grouped) { Worker worker = _workerServices.Read(minPassportNumber: item.Key, maxPassportNumber: item.Key).FirstOrDefault(); if (worker != null) { workers.Add(worker); } } Dictionary <Worker, decimal> result = new Dictionary <Worker, decimal>(); grouped.ToList().ForEach(x => result.Add(workers.Find(y => y.PassportNumber == x.Key), x.Sum(z => GetProfitFromOneOrder(z)))); return(result); }