public TableaudebordVM GetDashboardData(Guid? _idSelectedUser) { var model = new TableaudebordVM(); try { var languageData = Upsilab.Business.Utility.PageLanguageHelper.GetLanguageContent("User", "Convention"); //TODO : Filtre sur user selectionné ???? var currentUser = SessionManager.GetUserSession(); var sdg = SessionManager.GetFirmInstitutionSession(); var cgpList = CgpBL.GetListCGPWithConventionBySdg(sdg.idFirmInstitution); //var transaction = // //Convention // model.StatutConvention = new TableaudebordVM.DocumentStatusModel() { IconStringName = "puceT4", FilterData = "Convention", StatutType = TableaudebordVM.DocumentStatusModel.StatusType.Convention, StatusCollection = new Dictionary<int,int>() }; model.StatutConvention.StatusCollection.Add((int)DocumentBL.Status.WaitingForClientApproval, 0); model.StatutConvention.StatusCollection.Add((int)DocumentBL.Status.Approved, 0); model.StatutConvention.StatusCollection.Add((int)DocumentBL.Status.Rejected, 0); model.StatutConvention.StatusCollection.Add((int)DocumentBL.Status.WaitingForClientSignature, 0); model.StatutConvention.StatusCollection.Add((int)DocumentBL.Status.Completed, 0); // //Avenant // model.StatutEvenant = new TableaudebordVM.DocumentStatusModel() { IconStringName = "puceT4", FilterData = "Avenant", StatutType = TableaudebordVM.DocumentStatusModel.StatusType.Avenant, StatusCollection = new Dictionary<int, int>() }; model.StatutEvenant.StatusCollection.Add((int)DocumentBL.Status.WaitingForClientApproval, 0); model.StatutEvenant.StatusCollection.Add((int)DocumentBL.Status.Approved, 0); model.StatutEvenant.StatusCollection.Add((int)DocumentBL.Status.Rejected, 0); model.StatutEvenant.StatusCollection.Add((int)DocumentBL.Status.WaitingForClientSignature, 0); model.StatutEvenant.StatusCollection.Add((int)DocumentBL.Status.Completed, 0); int statutkey = (int)DocumentBL.Status.InProgress; var strstatut = string.Empty; foreach (var cgp in cgpList) { strstatut = cgp.ConventionStatus; if (!string.IsNullOrEmpty(strstatut)) { strstatut = strstatut.Trim(); statutkey = (int)Enum.Parse(typeof(DocumentBL.Status), strstatut, true); if (!string.IsNullOrEmpty(strstatut)) { if (model.StatutConvention.StatusCollection.ContainsKey(statutkey)) model.StatutConvention.StatusCollection[statutkey]++; } } strstatut = cgp.AvenantStatus; if (!string.IsNullOrEmpty(strstatut)) { strstatut = strstatut.Trim(); if (!string.IsNullOrEmpty(strstatut)) { statutkey = (int)Enum.Parse(typeof(DocumentBL.Status), strstatut, true); if (model.StatutEvenant.StatusCollection.ContainsKey(statutkey)) model.StatutEvenant.StatusCollection[statutkey]++; } } } model.StatutConvention.NbToComplete = CgpBL.CountConventionToComplete(sdg.idFirmInstitution); model.StatutConvention.NbToUpdate = CgpBL.CountConventionToUpdate(sdg.idFirmInstitution); //ViewBag.lstUsers = new SelectList(new List<string>()); //Get selected user Guid? selectedUserInSession = Guid.Empty; SessionManager.Get<Guid?>(UserBL.SelectedUserIdSessionKey, out selectedUserInSession); Guid? selectedUser = _idSelectedUser.HasValue ? _idSelectedUser.Value : (selectedUserInSession.HasValue ? selectedUserInSession : currentUser.idUser); var firmInstitutionParent = SessionManager.GetFirmInstitutionSession(); model.CurrentSelectedUser = currentUser; model.idCurrentUser = model.CurrentSelectedUser.idUser; //Si la FirmInstitutionParent est "SingleUsersDB", pas de dropdown User if (firmInstitutionParent.SingleUsersDB) { model.ShowSelection = false; } else { //Show dropdown Adviser if current user connected is not an adviser model.ShowSelection = model.CurrentSelectedUser.CanViewAdvisersList(); } //Get User related data for Adviser/Admin #region Advisers list if (model.ShowSelection) { model.UserSelection.Add(currentUser); bool filterAdvisersByUserFirm = (model.CurrentSelectedUser.IsAdministrativeAssistant()) ? true : false; var adviserUsers = from a in Business.Configuration.FirmInstitutionAdviserBL.GetAdvisersByIdFirmParent(SessionManager.GetFirmInstitutionSession(), model.CurrentSelectedUser, filterAdvisersByUserFirm, false) .GroupBy(a => a.idUser) .Select(ad => ad.First()) .ToList<FirmInstitutionAdviser>().AsQueryable() select a.User; List<Upsilab.Data.Model.User> lstUserAdvisers = adviserUsers.OrderBy(a => a.UserName).ToList(); lstUserAdvisers.Insert(0, new User() { idUser = Guid.Empty, UserName = languageData.GetContent("Tous_les_utilisateurs"), UserFirstName = "", UserLogin = "", UserPassword = "", UserEmail = "", UserMobilePhone = "", DateCreated = DateTime.Now, IsActive = true, IsDeleted = false }); // ViewBag.CurrentUserId ViewBag.lstUsers = new SelectList(lstUserAdvisers, "idUser", "EntireName", selectedUser); if (selectedUser.HasValue) { model.idCurrentUser = selectedUser.Value; model.CurrentSelectedUser = model.UserSelection.Where(u => u.idUser.Equals(selectedUser.Value)).FirstOrDefault(); } } #endregion } catch (Exception ex) { Upsilab.Business.Log.Log.AppendException(ex); } return model; }
public ActionResult Index(TableaudebordVM dashboardData) { return View(); }