Example #1
0
        public async Task <ActionResult> AddManager(AddManagerViewModel project)
        {
            string token  = Request.Headers["Authorization"];
            var    userID = JWTExtensions.GetDecodeTokenByProperty(token, "nameid").ToInt();

            project.UserID = userID;
            var model = await _projectService.AddManager(project);

            await _hubContext.Clients.All.SendAsync("ReceiveMessage", model.Item2, "message");

            return(Ok(model.Item1));
        }
Example #2
0
        public IActionResult AddManager()
        {
            var model = new AddManagerViewModel
            {
                AddWorkerDto           = new AddWorkerDto(),
                GenderNamesSelectItems = new List <SelectListItem>
                {
                    new SelectListItem {
                        Text = "Cinsiyet", Value = "0"
                    }
                }
            };

            foreach (var gender in _genderDal.GetList())
            {
                model.GenderNamesSelectItems.Add(new SelectListItem
                {
                    Text  = gender.GenderName,
                    Value = gender.GenderId.ToString()
                });
            }

            return(View(model));
        }
        public async Task <Tuple <bool, string> > AddManager(AddManagerViewModel addManager)
        {
            try
            {
                var listUsers = new List <int>();
                if (addManager.Users.Length > 0)
                {
                    //get old manager list
                    var oldManagers = await _managerRepository.FindAll().Where(x => x.ProjectID == addManager.ProjectID).Select(x => x.UserID).ToArrayAsync();

                    //new manager list from client
                    var newManagers = addManager.Users;
                    //get value of old managers list without value in new manager list
                    var withOutInOldManagers = newManagers.Except(oldManagers).ToArray();
                    if (withOutInOldManagers.Length > 0)
                    {
                        var managers = new List <Manager>();
                        foreach (var pic in withOutInOldManagers)
                        {
                            managers.Add(new Manager
                            {
                                UserID    = pic,
                                ProjectID = addManager.ProjectID
                            });
                        }
                        await _managerRepository.AddMultipleAsync(managers);

                        var project = await _projectRepository.FindByIdAsync(addManager.ProjectID);

                        var user = await _userRepository.FindByIdAsync(addManager.UserID);

                        string urlResult = $"/project/detail/{project.ID}";
                        var    message   = $"The {user.Username.ToTitleCase()} account has assigned you as manager of {project.Name} project";
                        var    notify    = new CreateNotifyParams
                        {
                            AlertType = AlertType.Manager,
                            Message   = message,
                            Users     = withOutInOldManagers.Distinct().ToList(),
                            URL       = urlResult,
                            UserID    = addManager.UserID
                        };
                        var addNotify = _mapper.Map <Notification>(notify);
                        await _notificationRepository.AddAsync(addNotify);

                        listUsers.AddRange(withOutInOldManagers);
                    }
                    else
                    {
                        //Day la userID se bi xoa
                        var withOutInNewManagers = oldManagers.Where(x => !newManagers.Contains(x)).ToArray();
                        var listDeleteManagers   = await _managerRepository.FindAll().Where(x => withOutInNewManagers.Contains(x.UserID) && x.ProjectID.Equals(addManager.ProjectID)).ToListAsync();

                        _managerRepository.RemoveMultiple(listDeleteManagers);
                    }
                }
                await _unitOfWork.Commit();

                return(Tuple.Create(true, string.Join(",", listUsers.Distinct().ToArray())));
            }
            catch (Exception)
            {
                return(Tuple.Create(false, ""));
            }
        }
 public AddManagerView()
 {
     InitializeComponent();
     DataContext = new AddManagerViewModel(this);
 }
Example #5
0
        public IActionResult AddManager(AddWorkerDto addWorkerDto)
        {
            var model = new AddManagerViewModel
            {
                AddWorkerDto           = addWorkerDto,
                GenderNamesSelectItems = new List <SelectListItem>
                {
                    new SelectListItem {
                        Text = "Cinsiyet", Value = "0"
                    }
                }
            };

            foreach (var gender in _genderDal.GetList())
            {
                model.GenderNamesSelectItems.Add(new SelectListItem
                {
                    Text  = gender.GenderName,
                    Value = gender.GenderId.ToString()
                });
            }
            if (addWorkerDto.GenderId == 0)
            {
                TempData.Add(TempDataTypes.GenderError, Messages.MustBeFilled);

                return(View(model));
            }

            if (addWorkerDto.BirthDateDay.Equals("0") || addWorkerDto.BirthDateMounth.Equals("0") || addWorkerDto.BirthDateYear.Equals("0"))
            {
                TempData.Add(TempDataTypes.BirthdayError, Messages.MustBeFilled);

                return(View(model));
            }

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

            var userForRegister = new UserForRegisterDto
            {
                Email       = addWorkerDto.Email,
                GenderId    = addWorkerDto.GenderId,
                LastName    = addWorkerDto.LastName,
                FirstName   = addWorkerDto.FirstName,
                Password    = addWorkerDto.Password,
                PhoneNumber = addWorkerDto.PhoneNumber
            };

            var result = _authService.Register(userForRegister, userForRegister.Password);

            if (!result.Success)
            {
                return(RedirectToAction("InternalError", "Error", new { errorMessage = result.Message }));
            }

            var user   = _userService.GetByMail(addWorkerDto.Email).Data;
            var worker = new Worker
            {
                AddressNumber = addWorkerDto.AddressNumber,
                IdentityNo    = addWorkerDto.IdentityNo,
                Street        = addWorkerDto.Street,
                CityId        = addWorkerDto.CityId,
                DistrictId    = addWorkerDto.DistrictId,
                BirthDate     = new DateTime(Convert.ToInt32(addWorkerDto.BirthDateYear), Convert.ToInt32(addWorkerDto.BirthDateMounth), Convert.ToInt32(addWorkerDto.BirthDateDay), 0, 0, 0),
                WorkerId      = user.Id
            };

            var result2 = _workerService.AddManager(worker);

            if (!result2.Success)
            {
                return(RedirectToAction("InternalError", "Error", new { errorMessage = result2.Message }));
            }

            TempData.Add(TempDataTypes.ManageInfo, Messages.ManagerAddedSuccessfully);
            return(RedirectToAction("Index", "User"));
        }