Пример #1
0
        public IActionResult Index(Worker worker)
        {
            var       sessionSortState = HttpContext.Session.GetString("SortState");
            SortState sortOrder        = new SortState();

            if (sessionSortState != null)
            {
                sortOrder = (SortState)Enum.Parse(typeof(SortState), sessionSortState);
            }

            int?page = HttpContext.Session.GetInt32("Page");

            if (page == null)
            {
                page = 0;
                HttpContext.Session.SetInt32("Page", 0);
            }

            IQueryable <Worker> workers = Sort(db.Workers, sortOrder,
                                               worker.FioWorker, worker.Salary, (int)page);

            HttpContext.Session.SetObject("Worker", worker);

            WorkersViewModel workersView = new WorkersViewModel
            {
                WorkerViewModel = worker,
                PageViewModel   = workers,
                PageNumber      = (int)page
            };

            return(View(workersView));
        }
Пример #2
0
        public async Task <IActionResult> Create(WorkersViewModel wvm)
        {
            Workers worker = new Workers();

            if (wvm.ClientID != null)
            {
                worker = new Workers {
                    FullName = wvm.FullName, ImageName = wvm.Avatar.FileName, ClientID = wvm.ClientID
                };
            }
            else
            {
                var currentUser = await _userManager.FindByNameAsync(User.Identity.Name);

                worker = new Workers {
                    FullName = wvm.FullName, ImageName = wvm.Avatar.FileName, ClientID = currentUser.ClientID
                };
            }

            if (wvm.Avatar != null)
            {
                byte[] imageData = null;
                using (var binaryReader = new BinaryReader(wvm.Avatar.OpenReadStream()))
                {
                    imageData = binaryReader.ReadBytes((int)wvm.Avatar.Length);
                }
                worker.Avatar = imageData;
            }
            db.Workers.Add(worker);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Пример #3
0
        public ActionResult Index()
        {
            WorkersViewModel Model = new WorkersViewModel();

            Model.listaEvidencijaKljuceva = ctx.EvidencijaKljuceva
                                            .Select(x => new WorkersViewModel.EvidencijaKljucevaInfo()
            {
                Id               = x.Id,
                NazivUcionice    = x.Kljuc.Ucionica.Naziv,
                NastavnoOsoblje  = x.NastavnoOsoblje.Ime + " " + x.NastavnoOsoblje.Prezime,
                BarKodKljuca     = x.Kljuc.Barcode,
                DatumPreuzimanja = x.DatumPreuzimanja,
                DatumVracanja    = x.DatumVracanja
            }).Where(y => y.DatumVracanja == null).ToList();
            //.Where(y => y.DatumVracanja == null && y.DatumPreuzimanja.Day == DateTime.Today.Day).ToList();

            Model.listaEvidencijaKnjigaZaIznajmljivanje = ctx.EvidencijaKnjigaZaIznajmljivanje
                                                          .Select(x => new WorkersViewModel.EvidencijaKnjigaZaIznajmljivanjeInfo()
            {
                Id             = x.Id,
                NazivKnjige    = x.Knjiga.Naziv,
                Autor          = x.Knjiga.Autor,
                DatumIzdavanja = x.DatumIzdavanja,
                DatumVracanja  = x.DatumVracanja,
                Student        = x.Student.Ime + " " + x.Student.Prezime,
                Vracena        = x.Vracena
            }).Where(y => y.Vracena == false).Take(8).ToList();

            Model.listaEvidencijaKnjigaZaProdaju = ctx.EvidencijaKnjigaZaProdaju
                                                   .Select(x => new WorkersViewModel.EvidencijaKnjigaZaProdajuInfo()
            {
                DatumEvidencije = x.DatumEvidencije,
                NazivKnjge      = x.Knjiga.Naziv,
                Autor           = x.Knjiga.Autor,
                Cijena          = x.Knjiga.Cijena
            }).OrderByDescending(x => x.DatumEvidencije).Take(8).ToList();

            Model.listaEvidencijaMaterijala = ctx.EvidencijaNarudzbeIspitnogMaterijala
                                              .Select(x => new WorkersViewModel.EvidencijaNarudzbeIspitnogMaterijalaInfo()
            {
                NazivMaterijala = x.IspitniMaterijal.Naziv,
                Kolicina        = x.Kolicina,
                DatumNarudzbe   = x.DatumNarudzbe
            }).OrderByDescending(x => x.DatumNarudzbe).Take(8).ToList();

            Model.listaRezervisanihKnjiga = ctx.Rezervacija
                                            .Select(x => new WorkersViewModel.RezervacijeKnjigaInfo()
            {
                Id               = x.Id,
                knjigaId         = x.KnjigaId,
                studentId        = x.StudentId,
                BrojIndexa       = x.Student.BrojIndeksa,
                Naziv            = x.Knjiga.Naziv,
                DatumRezervacije = x.DatumRezervacije,
                Status           = x.RezervacijaPotvrdjena
            }).Where(x => x.Status == false).OrderByDescending(x => x.DatumRezervacije).ToList();

            return(View(Model));
        }
Пример #4
0
        private void FullDGVWokers()
        {
            int divisionId = Convert.ToInt32(tvDivisions.SelectedNode.Tag);

            dgvWorkers.AutoGenerateColumns = true;
            var source = new WorkersViewModel(divisionId).Workers;

            dgvWorkers.DataSource = source.ToArray();
        }
 public MainViewModel()
 {
     client      = new GrpcClient("https://localhost:5001");
     prisonersVM = new PrisonersViewModel(this);
     locationsVM = new LocationsViewModel(this);
     jobsVM      = new JobsViewModel(this);
     workersVM   = new WorkersViewModel(this);
     LoadViewModels();
 }
Пример #6
0
        public IActionResult Create()
        {
            WorkersViewModel workerModel = new WorkersViewModel
            {
                Stores      = _dbContext.Stores.ToList(),
                Departments = _dbContext.Departments.ToList(),
                Employees   = _dbContext.Employees.Where(x => x.Worker == null).ToList(),
            };

            return(View(workerModel));
        }
Пример #7
0
        public async Task <IActionResult> Index(string fio, int page = 1, WorkerSortState sortOrder = WorkerSortState.FIOAsc)
        {
            int pageSize = 5;

            //фильтрация
            IQueryable <Worker> workers = db.Workers;

            if (!string.IsNullOrEmpty(fio))
            {
                workers = workers.Where(p => p.WorkerFIO.Contains(fio));
            }

            // сортировка
            switch (sortOrder)
            {
            case WorkerSortState.FIODesc:
                workers = workers.OrderByDescending(s => s.WorkerFIO);
                break;

            case WorkerSortState.PostAsc:
                workers = workers.OrderBy(s => s.WorkerPost);
                break;

            case WorkerSortState.PostDesc:
                workers = workers.OrderByDescending(s => s.WorkerPost);
                break;

            default:
                workers = workers.OrderBy(s => s.WorkerFIO);
                break;
            }

            // пагинация
            var count = await workers.CountAsync();

            var items = await workers.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            // формируем модель представления
            WorkersViewModel viewModel = new WorkersViewModel
            {
                PageViewModel         = new PageViewModel(count, page, pageSize),
                WorkerSortViewModel   = new WorkerSortViewModel(sortOrder),
                WorkerFilterViewModel = new WorkerFilterViewModel(fio),
                Workers = items
            };

            return(View(viewModel));
        }
Пример #8
0
        public IActionResult Index(SortState sortOrder = SortState.No, int index = 0)
        {
            Worker sessionWorker    = HttpContext.Session.GetObject <Worker>("Worker");
            string sessionSortState = HttpContext.Session.GetString("SortState");
            int?   page             = HttpContext.Session.GetInt32("Page");

            if (page == null)
            {
                page = 0;
                HttpContext.Session.SetInt32("Page", 0);
            }
            else
            {
                if (!(page < 1 && index < 0))
                {
                    page += index;
                }
                HttpContext.Session.SetInt32("Page", (int)page);
            }

            if (sessionWorker != null)
            {
                _worker = sessionWorker;
            }

            if (sessionSortState != null)
            {
                if (sortOrder == SortState.No)
                {
                    sortOrder = (SortState)Enum.Parse(typeof(SortState), sessionSortState);
                }
            }

            ViewData["SurnameSort"] = sortOrder == SortState.FioWorkerDesc ? SortState.FioWorkerAsc : SortState.FioWorkerDesc;
            ViewData["SalarySort"]  = sortOrder == SortState.SalaryDesc ? SortState.SalaryAsc : SortState.SalaryDesc;

            HttpContext.Session.SetString("SortState", sortOrder.ToString());
            IQueryable <Worker> workers = Sort(db.Workers, sortOrder,
                                               _worker.FioWorker, _worker.Salary, (int)page);
            WorkersViewModel workersView = new WorkersViewModel
            {
                WorkerViewModel = _worker,
                PageViewModel   = workers,
                PageNumber      = (int)page
            };

            return(View(workersView));
        }
Пример #9
0
        public async Task <IActionResult> Edit(WorkersViewModel wvm)
        {
            var currentUser = await _userManager.FindByNameAsync(User.Identity.Name);

            Workers worker = await db.Workers.FirstOrDefaultAsync(p => p.Id == wvm.Id);

            if (currentUser.ClientID != "admin")
            {
                if (currentUser.ClientID == worker.ClientID)
                {
                    worker.FullName = wvm.FullName;
                    if (wvm.Avatar != null)
                    {
                        byte[] imageData = null;
                        using (var binaryReader = new BinaryReader(wvm.Avatar.OpenReadStream()))
                        {
                            imageData = binaryReader.ReadBytes((int)wvm.Avatar.Length);
                        }
                        worker.Avatar    = imageData;
                        worker.ImageName = wvm.Avatar.FileName;
                    }
                    db.Workers.Update(worker);
                    await db.SaveChangesAsync();

                    return(Redirect(TempData["returnurl"].ToString()));
                }
            }
            else
            {
                worker.FullName = wvm.FullName;
                if (wvm.Avatar != null)
                {
                    byte[] imageData = null;
                    using (var binaryReader = new BinaryReader(wvm.Avatar.OpenReadStream()))
                    {
                        imageData = binaryReader.ReadBytes((int)wvm.Avatar.Length);
                    }
                    worker.Avatar    = imageData;
                    worker.ImageName = wvm.Avatar.FileName;
                }
                db.Workers.Update(worker);
                await db.SaveChangesAsync();

                return(Redirect(TempData["returnurl"].ToString()));
            }
            return(NotFound());
        }
Пример #10
0
        public async Task <IActionResult> Edit(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var worker = await _userManager.FindByIdAsync(id);

            WorkersViewModel workersView = new WorkersViewModel
            {
                Departments = _dbContext.Departments.ToList(),
                Employees   = _dbContext.Employees.ToList(),
                Name        = _dbContext.Employees.Where(x => x.ID == worker.EmployeeId).Select(x => x.Name).FirstOrDefault(),
                Surname     = _dbContext.Employees.Where(x => x.ID == worker.EmployeeId).Select(x => x.Surname).FirstOrDefault(),
                Position    = _dbContext.Positions.Where(x => x.ID == worker.PositionId).Select(x => x.Name).FirstOrDefault(),
                Email       = worker.Email,
                Department  = _dbContext.Positions.Include(m => m.Department).Where(x => x.ID == worker.PositionId).Select(m => m.Department.Name).FirstOrDefault()
            };

            return(View(workersView));
        }
Пример #11
0
        public async Task <IActionResult> Create(WorkersViewModel create)
        {
            if (!ModelState.IsValid)
            {
                create.Stores      = _dbContext.Stores.ToList();
                create.Employees   = _dbContext.Employees.Where(x => x.Worker == null).ToList();
                create.Departments = _dbContext.Departments.ToList();
                return(View(create));
            }
            Worker worker = new Worker();

            if (create.SelectedStore == 0)
            {
                worker.StoreId = null;
            }

            worker.StoreId  = create.SelectedStore;
            create.Password = $"{Path.GetRandomFileName().ToUpper()}_{Path.GetRandomFileName().ToLower()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}";

            worker.Email      = create.Email;
            worker.EmployeeId = create.SelectedEmployee;
            worker.PositionId = create.SelectedPosition;
            worker.UserName   = create.Email;
            worker.Account    = _dbContext.Employees.Where(x => x.ID == create.SelectedEmployee).Select(x => x.Name).FirstOrDefault() + " "
                                + _dbContext.Employees.Where(x => x.ID == create.SelectedEmployee).Select(x => x.Surname).FirstOrDefault();
            worker.PassText  = create.Password;
            worker.BeginDate = create.BeginDate;
            worker.Working   = true;

            IdentityResult result = await _userManager.CreateAsync(worker, create.Password);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
                create.Employees   = _dbContext.Employees.ToList();
                create.Departments = _dbContext.Departments.ToList();
                return(View(create));
            }
            await _userManager.AddToRoleAsync(worker, Roles.Worker.ToString());

            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);

            client.EnableSsl             = true;
            client.DeliveryMethod        = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.Credentials           = new NetworkCredential("*****@*****.**", "Metin1998*#");
            MailMessage mailMessage = new MailMessage();

            mailMessage.To.Add(worker.Email);
            mailMessage.From = new MailAddress("*****@*****.**");

            mailMessage.Subject      = "Your password...";
            mailMessage.Body         = worker.PassText;
            mailMessage.BodyEncoding = UTF8Encoding.UTF8;
            client.Send(mailMessage);
            mailMessage.IsBodyHtml = true;

            return(RedirectToAction(nameof(WorkerList)));
        }
Пример #12
0
        public async Task <IActionResult> Edit(string id, WorkersViewModel workersView)
        {
            var workers = await _userManager.FindByIdAsync(id);

            string companyWorkPlaceId       = $"{Path.GetRandomFileName()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}";
            string companyWorkPlaceBonusId  = $"{Path.GetRandomFileName().ToLower()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}";
            string companyWorkPlaceAbsensId = $"{Path.GetRandomFileName().ToUpper()}_{DateTime.Now.ToString("dd_MM_yyyy_hh_mm")}";

            workersView.Departments = _dbContext.Departments.ToList();
            workersView.Employees   = _dbContext.Employees.ToList();
            workersView.Name        = _dbContext.Employees.Where(x => x.ID == workers.EmployeeId).Select(x => x.Name).FirstOrDefault();
            workersView.Surname     = _dbContext.Employees.Where(x => x.ID == workers.EmployeeId).Select(x => x.Surname).FirstOrDefault();
            workersView.Position    = _dbContext.Positions.Where(x => x.ID == workers.PositionId).Select(x => x.Name).FirstOrDefault();
            workersView.Email       = workers.Email;
            workersView.Department  = _dbContext.Positions.Include(m => m.Department).Where(x => x.ID == workers.PositionId).Select(m => m.Department.Name).FirstOrDefault();
            workersView.Password    = workers.PassText;

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

            if (workersView.SelectedPosition == workers.PositionId)
            {
                return(View(workersView));
            }

            CompanyWorkPlace companyWorkPlace = new CompanyWorkPlace
            {
                ID          = companyWorkPlaceId,
                EmployeeId  = workers.EmployeeId,
                ChangedDate = DateTime.Now,
                PositionId  = workersView.SelectedPosition
            };

            _dbContext.CompanyWorkPlaces.Add(companyWorkPlace);

            CompanyWorkPlaceBonus companyWorkPlaceBonus = new CompanyWorkPlaceBonus
            {
                ID = companyWorkPlaceBonusId,
                CompanyWorkPlaceId = companyWorkPlaceId,
                BonusSalary        = _dbContext.WorkerBonus.Where(x => x.WorkerId == workers.Id).Select(x => x.BonusSalary).Sum()
            };

            _dbContext.CompanyWorkPlaceBonus.Add(companyWorkPlaceBonus);

            CompanyWorkPlaceAbsens companyWorkPlaceAbsens = new CompanyWorkPlaceAbsens
            {
                ID = companyWorkPlaceAbsensId,
                CompanyWorkPlaceId = companyWorkPlaceId,
                ExcusableAbsens    = _dbContext.WorkerAbsens.Where(x => x.WorkerId == workers.Id && x.AbsensId == 1).Count(),
                UnExcusableAbsens  = _dbContext.WorkerAbsens.Where(x => x.WorkerId == workers.Id && x.AbsensId == 2).Count()
            };

            _dbContext.CompanyWorkPlaceAbsens.Add(companyWorkPlaceAbsens);

            Worker worker = new Worker
            {
                BeginDate  = DateTime.Now,
                Account    = workers.Account,
                Email      = workers.Email,
                EmployeeId = workers.EmployeeId,
                PassText   = workers.PassText,
                UserName   = workers.UserName,
                PositionId = workersView.SelectedPosition,
                Working    = true
            };

            _dbContext.WorkerBonus.RemoveRange(_dbContext.WorkerBonus.Where(x => x.WorkerId == workers.Id).ToList());
            _dbContext.WorkerAbsens.RemoveRange(_dbContext.WorkerAbsens.Where(x => x.WorkerId == workers.Id).ToList());

            await _userManager.DeleteAsync(workers);

            IdentityResult result = await _userManager.CreateAsync(worker, workers.PassText);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }

            await _userManager.AddToRoleAsync(worker, Roles.Worker.ToString());

            await _dbContext.SaveChangesAsync();

            return(RedirectToAction(nameof(WorkerList)));
        }
Пример #13
0
        public WorkersViewModel GenerateWorkersData(WorkersContext workersContext)
        {
            //var daysData = new Days
            //{
            //    Day = DateTime.Now
            //};

            //workersContext.Days.Add(daysData);
            //daysData = new Days
            //{
            //    Day = DateTime.Now.AddDays(1)
            //};

            //workersContext.Days.Add(daysData);
            //workersContext.SaveChanges();
            //var testCheck1 = workersContext.DaysOfWork.ToList();



            //var workersData = new Workers
            //{
            //    Name = "Antek",
            //    Surname = "Walentynowicz",
            //    PhoneNumber = "234432234",
            //    Position = "Medic",
            //    Shift = "2",
            //    Unity = "1",

            //};

            //workersContext.Workers.Add(workersData);

            //workersData = new Workers
            //{
            //    Name = "Bartosz",
            //    Surname = "Walenrod",
            //    PhoneNumber = "345654789",
            //    Position = "Enginerr",
            //    Shift = "1",
            //    Unity = "2",

            //};

            //workersContext.Workers.Add(workersData);
            var dateTime = DateTime.Now;

            var allWorkersList = workersContext.Workers.Select(t => t).ToList();
            var daysOfWorkIds  = workersContext.Days
                                 //.Where(y => y.Day.Day == dateTime.Day || y.Day.Day == dateTime.AddDays(1).Day)
                                 .ToList();

            var dayOfWorkData = workersContext.DaysOfWork.Select(t => t).ToList();

            var workersAssigmentData = dayOfWorkData.Join(daysOfWorkIds,
                                                          dw => dw.DayId,
                                                          d => d.Id,
                                                          (dw, d) => new { d.Day, dw.Unity, dw.Shift, dw.WorkerId })
                                       .Join(allWorkersList,
                                             dw => dw.WorkerId,
                                             wc => wc.Id,
                                             (dw, wc) => new { wc.Name, wc.Surname, wc.Position, dw.Day, dw.Shift, dw.Unity })
                                       .Select(x => new WorkersAssigmentData {
                Name = x.Name, Surname = x.Surname, Position = x.Position, Shift = x.Shift, Unity = x.Unity, Day = x.Day
            })
                                       .ToList();



            var data = new WorkersViewModel
            {
                AllWorkersList       = allWorkersList,
                WorkersAssigmentData = workersAssigmentData
            };

            return(data);
        }
Пример #14
0
        // GET: Materials
        public IActionResult Index(string surname, string firstname, string adress, string birthday, int page = 1, WorkersSortState sortOrder = WorkersSortState.SurnameAsc)
        {
            int pageSize = 10;
            IQueryable <Workers> source = _context.Workers;

            if (surname != null)
            {
                source = source.Where(x => x.Surname.Contains(surname));
            }

            if (firstname != null)
            {
                source = source.Where(x => x.Firstname.Contains(firstname));
            }

            if (adress != null)
            {
                source = source.Where(x => x.Adress.Contains(adress));
            }

            if (birthday != null)
            {
                source = source.Where(x => x.Birthday == DateTime.Parse(birthday));
            }

            switch (sortOrder)
            {
            case WorkersSortState.SurnameAsc:
                source = source.OrderBy(x => x.Surname);
                break;

            case WorkersSortState.SurnameDesc:
                source = source.OrderByDescending(x => x.Surname);
                break;

            case WorkersSortState.FirstnameAsc:
                source = source.OrderBy(x => x.Firstname);
                break;

            case WorkersSortState.FirstnsmeDesc:
                source = source.OrderByDescending(x => x.Firstname);
                break;

            case WorkersSortState.AdresslAsc:
                source = source.OrderBy(x => x.Adress);
                break;

            case WorkersSortState.AdresslDesc:
                source = source.OrderByDescending(x => x.Adress);
                break;

            case WorkersSortState.BirthdayAsc:
                source = source.OrderBy(x => x.Birthday);
                break;

            case WorkersSortState.BirthdayDesc:
                source = source.OrderByDescending(x => x.Birthday);
                break;

            default:
                source = source.OrderBy(x => x.Surname);
                break;
            }

            var              count    = source.Count();
            var              items    = source.Skip((page - 1) * pageSize).Take(pageSize);
            PageViewModel    pageView = new PageViewModel(count, page, pageSize);
            WorkersViewModel ivm      = new WorkersViewModel
            {
                PageViewModel   = pageView,
                SortViewModel   = new SortWorkersViewModel(sortOrder),
                FilterViewModel = new FilterWorkersViewModel(surname, firstname, adress, birthday),
                Workers         = items
            };

            return(View(ivm));
        }
 public WorkersDTO Map(WorkersViewModel workers) => mMapper.Map <WorkersDTO>(workers);
Пример #16
0
 public WorkersPage()
 {
     InitializeComponent();
     DataContext = new WorkersViewModel();
 }