void DelEmployeeView()
        {
            if (SelectedEmplViews != null)
            {
                IEnumerable <EmployeeView> emplViewsToDel = SelectedEmplViews.Cast <EmployeeView>();
                while (emplViewsToDel.Where(i => i.IsAdded).Count() > 0)
                {
                    EmployeeViews.Remove(emplViewsToDel.First(i => i.IsAdded));
                }

                foreach (var eV in emplViewsToDel)
                {
                    if (eV.IsAdded == false)
                    {
                        eV.IsDeleted = true;
                    }
                }
                if (EmployeeViews.FirstOrDefault(eV => eV.IsAdded || eV.IsDeleted) != null)
                {
                    IsEmployeeViewsChanged = true;
                }
                else
                {
                    IsEmployeeViewsChanged = false;
                }
            }
        }
예제 #2
0
        public async Task <IActionResult> Create(EmployeeViews employeeViews)
        {
            if (ModelState.IsValid)
            {
                string newuid;
                while (true)
                {
                    newuid = RandomString(11);
                    var find = await _context.Citizens.FirstOrDefaultAsync(m => m.Id == newuid);

                    if (find == null)
                    {
                        break;
                    }
                }
                newuid = "E" + newuid;
                Employee employee = new Employee();
                employee.Id       = newuid;
                employee.Name     = employeeViews.Name;
                employee.Email    = employeeViews.Email;
                employee.Password = employeeViews.Password;
                employee.Area     = employeeViews.Area;
                employee.ZipCode  = employeeViews.ZipCode;
                employee.post     = employeeViews.post;
                _context.Add(employee);
                await _context.SaveChangesAsync();

                ViewBag.uid = newuid;
                HttpContext.Session.SetString("newuid", newuid);
                return(this.RedirectToAction("Index", "Home"));
            }
            return(View(employeeViews));
        }
        void DataLoading()
        {
            List <Employee> employees = new List <Employee>();

            try
            {
                DIConfig.ComposeContainer.ComposeParts(this);
                EmployeeLogic.Login    = Credentials.Login;
                EmployeeLogic.Password = Credentials.Password;
                employees = EmployeeLogic.GetEmployees();
            }
            catch (Exception ex)
            {
                MessageBoxVM = new MessageBoxModel()
                {
                    Message = ErrorMessage.MakingMessageForMessageBox(ex),
                    Caption = errCaption
                };
                Log.WriteLogAsync(ex);
            }

            Mapper.Map <List <EmployeeView> >(employees)
            .ForEach(e =>
            {
                e.PropertyChanged += (s, eArgs) =>
                                     OnEmployeeViewChnaged(e, eArgs.PropertyName);
                e.EmplProjViews.CollectionChanged += (s, eArgs) =>
                                                     OnEmplProjViewsCountChanged(e, eArgs.NewItems, eArgs.OldItems);
                e.LeadProjViews.CollectionChanged += (s, eArgs) =>
                                                     OnLeadProjViewsCountChanged(e, eArgs.NewItems, eArgs.OldItems);
                EmployeeViews.Add(e);
            });
            CurrentEmplView = EmployeeViews.FirstOrDefault();
        }
        void CancelChanges()
        {
            if (EmployeeViews.Where(e => e.IsAdded).Count() > 0 ||
                EmployeeViews.Where(e => e.IsChanged).Count() > 0 ||
                EmployeeViews.Where(e => e.IsDeleted).Count() > 0)
            {
                MessageBoxVM = new MessageBoxModel()
                {
                    Message = "Все внесённые изменения будут удалены. Продолжить?",
                    Caption = "сотрудники",
                    Buttons = MessageBoxButton.YesNo
                };
                if (MessageBoxVM.Result == MessageBoxResult.Yes)
                {
                    int numOfAdded = 0;
                    foreach (var eV in EmployeeViews)
                    {
                        if (eV.IsAdded)
                        {
                            numOfAdded++;
                        }
                        if (eV.IsChanged)
                        {
                            eV.Name = eV.Backup.Name;
                            if (eV.IsChanged)
                            {
                                eV.Surname = eV.Backup.Surname;
                            }
                            if (eV.IsChanged)
                            {
                                eV.MiddleName = eV.Backup.MiddleName;
                            }
                            if (eV.IsChanged)
                            {
                                eV.EMail = eV.Backup.EMail;
                            }
                        }
                        if (eV.IsDeleted)
                        {
                            eV.IsDeleted = false;
                        }
                    }
                    while (numOfAdded > 0)
                    {
                        EmployeeViews.Remove(EmployeeViews.First(eV => eV.IsAdded));
                        numOfAdded--;
                    }

                    if (EmployeeViews.FirstOrDefault(eV => eV.IsAdded || eV.IsDeleted) != null)
                    {
                        IsEmployeeViewsChanged = true;
                    }
                    else
                    {
                        IsEmployeeViewsChanged = false;
                    }
                }
            }
        }
 void AddEmployeeView()
 {
     EmployeeViews.Add(new EmployeeView());
     EmployeeViews.Last().IsAdded = true;
     if (EmployeeViews.FirstOrDefault(eV => eV.IsAdded) != null)
     {
         IsEmployeeViewsChanged = true;
     }
 }
 void FilterViewFromDB()
 {
     if (LoadFromDb == true)
     {
         List <Employee> employees = new List <Employee>();
         try
         {
             if (EmployeeViews.Where(eV => eV.IsAdded).Count() > 0 ||
                 EmployeeViews.Where(eV => eV.IsChanged).Count() > 0 ||
                 EmployeeViews.Where(eV => eV.IsDeleted).Count() > 0)
             {
                 MessageBoxVM = new MessageBoxModel()
                 {
                     Message = "Все внесённые изменения будут удалены. Продолжить?",
                     Caption = "сотрудники",
                     Buttons = MessageBoxButton.YesNo
                 };
                 if (MessageBoxVM.Result == MessageBoxResult.Yes)
                 {
                     while (EmployeeViews.Count > 0)
                     {
                         EmployeeViews.Remove(EmployeeViews.First());
                     }
                     employees = LoadFilteredDataFromDb(FilterControlName);
                 }
             }
             else
             {
                 while (EmployeeViews.Count > 0)
                 {
                     EmployeeViews.Remove(EmployeeViews.First());
                 }
                 employees = LoadFilteredDataFromDb(FilterControlName);
             }
         }
         catch (Exception ex)
         {
             MessageBoxVM = new MessageBoxModel()
             {
                 Message = ErrorMessage.MakingMessageForMessageBox(ex),
                 Caption = errCaption
             };
             Log.WriteLogAsync(ex);
         }
         Mapper.Map <List <EmployeeView> >(employees)
         .ForEach(e =>
         {
             e.PropertyChanged += (s, eArgs) =>
                                  OnEmployeeViewChnaged(e, eArgs.PropertyName);
             e.EmplProjViews.CollectionChanged += (s, eArgs) =>
                                                  OnEmplProjViewsCountChanged(e, eArgs.NewItems, eArgs.OldItems);
             e.LeadProjViews.CollectionChanged += (s, eArgs) =>
                                                  OnLeadProjViewsCountChanged(e, eArgs.NewItems, eArgs.OldItems);
             EmployeeViews.Add(e);
         });
     }
 }
예제 #7
0
        public IActionResult EmployeeView(int id)
        {
            var employee = _employeesData.GetByID(id);

            if (id == 0 || employee == null)
            {
                employee = new EmployeeViews(0, null, null, 0);
            }
            return(View(employee));
        }
        void DataLoading()
        {
            EmployeeLogic.Login    = Credentials.Login;
            EmployeeLogic.Password = Credentials.Password;

            IProgress <bool>            queryExecutionProgress   = new Progress <bool>(inProgress => LoadFromDbInProgress = inProgress);
            IProgress <EmployeeView>    GetEmployeeViewsProgress = new Progress <EmployeeView>(emplView => EmployeeViews.Add(emplView));
            IProgress <MessageBoxModel> messageReport            = new Progress <MessageBoxModel>(messageBoxVM => MessageBoxVM = messageBoxVM);

            Task.Run(() =>
            {
                List <Employee> employees = new List <Employee>();
                try
                {
                    queryExecutionProgress.Report(true);
                    employees = EmployeeLogic.GetEmployees();
                }
                catch (Exception ex)
                {
                    messageReport.Report(new MessageBoxModel()
                    {
                        Message = ErrorMessage.MakingMessageForMessageBox(ex),
                        Caption = errCaption
                    });
                    Log.WriteLogAsync(ex);
                }

                Mapper.Map <List <EmployeeView> >(employees)
                .ForEach(e =>
                {
                    e.PropertyChanged += (s, eArgs) =>
                                         OnEmployeeViewChnaged(e, eArgs.PropertyName);
                    e.EmplProjViews.CollectionChanged += (s, eArgs) =>
                                                         OnEmplProjViewsCountChanged(e, eArgs.NewItems, eArgs.OldItems);
                    e.LeadProjViews.CollectionChanged += (s, eArgs) =>
                                                         OnLeadProjViewsCountChanged(e, eArgs.NewItems, eArgs.OldItems);
                    GetEmployeeViewsProgress.Report(e);
                });
                queryExecutionProgress.Report(false);
            });
            CurrentEmplView = EmployeeViews.FirstOrDefault();
        }
예제 #9
0
 public IActionResult EmployeeView(EmployeeViews employee)
 {
     if (ModelState.IsValid)
     {
         if (employee.Id == 0)
         {
             employee.Id = _employeesData.GetAll().Max(e => e.Id) + 1;
             _employeesData.AddNew(employee);
         }
         else
         {
             var empl = _employeesData.GetByID(employee.Id);
             empl.FirstName = employee.FirstName;
             empl.LastName  = employee.LastName;
             empl.Age       = employee.Age;
         }
         return(RedirectToAction("Index"));
     }
     else
     {
         return(View(employee));
     }
 }
        void SaveChanges()
        {
            MessageBoxVM = new MessageBoxModel()
            {
                Message = "Выполнить сохранение всех внесённых изменений?",
                Caption = "сотрудники",
                Buttons = MessageBoxButton.YesNo
            };
            if (MessageBoxVM.Result == MessageBoxResult.Yes)
            {
                List <Employee> emplsToAdd    = Mapper.Map <IEnumerable <EmployeeView>, List <Employee> >(EmployeeViews.Where(eV => eV.IsAdded));
                List <Employee> emplsToUpdate = Mapper.Map <IEnumerable <EmployeeView>, List <Employee> >(EmployeeViews.Where(eV => eV.IsChanged));
                List <Employee> emplsToDelete = Mapper.Map <IEnumerable <EmployeeView>, List <Employee> >(EmployeeViews.Where(eV => eV.IsDeleted));

                bool IsChangesSaved = false;
                try
                {
                    IsChangesSaved = EmployeeLogic.SetEmployees(emplsToAdd, emplsToUpdate, emplsToDelete);
                }
                catch (Exception ex)
                {
                    MessageBoxVM = new MessageBoxModel()
                    {
                        Message = ErrorMessage.MakingMessageForMessageBox(ex),
                        Caption = errCaption
                    };
                    Log.WriteLogAsync(ex);
                }
                if (IsChangesSaved)
                {
                    if (emplsToDelete.Count > 0)
                    {
                        while (EmployeeViews.Where(eV => eV.IsDeleted).Count() > 0)
                        {
                            EmployeeView emplView = EmployeeViews.First(eV => eV.IsDeleted);
                            foreach (var pV in ViewModelsContainer.ProjectsViewModel.ProjectViews)
                            {
                                pV.ProjEmplViews.Remove(Mapper.Map <ProjEmplView>(emplView));
                                if (pV.ProjLeadView != null && pV.ProjLeadView.Id == emplView.Id)
                                {
                                    pV.ProjLeadView = null;
                                }
                            }
                            EmployeeViews.Remove(emplView);
                        }
                    }

                    if (emplsToAdd.Count > 0)
                    {
                        IEnumerator <Employee> emplEnumerator = EmployeeLogic.GetEmplIDs().GetEnumerator();
                        foreach (var eV in EmployeeViews)
                        {
                            emplEnumerator.MoveNext();
                            eV.Id = emplEnumerator.Current.Id;
                            if (eV.IsAdded == true)
                            {
                                eV.LeadProjViews = new ObservableCollection <EmplProjView>();
                                eV.EmplProjViews = new ObservableCollection <EmplProjView>();
                            }
                            eV.IsAdded = false;
                        }
                    }

                    if (emplsToUpdate.Count > 0)
                    {
                        foreach (var eV in EmployeeViews)
                        {
                            eV.IsChanged = false;
                            eV.BackupClear();
                        }
                    }
                    IsEmployeeViewsChanged = false;
                }
            }
        }
 public void AddNew(EmployeeViews employee)
 {
     employee.Id = _employees.Max(e => e.Id) + 1;
     _employees.Add(employee);
 }
        public EmployeeViews GetByID(int id)
        {
            EmployeeViews employee = _employees.FirstOrDefault(e => e.Id == id);

            return(employee);
        }