/// <summary> /// Inizializzazione View: /// Bind filtri, bind tabelle, etc... /// </summary> public void InitView() { if (!CheckSessionAccess()) { return; } //DateTime DT1 = DateTime.Now; //Controllo dei permessi viene fatto QUI DENTRO: InitViewFilters(); //Altrimenti devo recuperare 2 volte le categorie... //Se non ho categorie o se non ho ticket associati, //richiamo il "ShowNoPermission" della View, che fa il REDIRECT sulla lista personale. //DateTime DT2 = DateTime.Now; BindInfos(); //DateTime DT3 = DateTime.Now; BindTable(null, true); //DateTime DT_END = DateTime.Now; //TimeSpan TS_FILTERS = DT2 - DT1; //TimeSpan TS_Infos = DT3 - DT2; //TimeSpan TS_TABLE = DT_END - DT3; //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID))); View.SendUserActions( service.ModuleID, ModuleTicket.ActionType.TicketListManRes, View.ViewCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action }
//public void DeleteCategory(Int64 CategoryID) //{ // service.CategoryDelete(CategoryID); // View.BindList(service.CategoriesGetCommunity(true, true, CurrentCommunityId), Module.ManageCategory); //} public void RecoverCategory(Int64 CategoryID) { if (!CheckSessionAccess()) { return; } if (!(Module.EditCategory || Module.ManageCategory || Module.Administration)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); return; } service.CategoryRecover(CategoryID); //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(this.UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetCategory(CategoryID)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.CategoryUndelete, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action View.BindList(service.CategoriesGetCommunity(true, true, CurrentCommunityId), Module.ManageCategory, service.CategoryDefaultGetID()); }
public void Create() { if (!CheckSessionAccess()) { return; } if (!(Module.ManageCategory || Module.Administration)) { View.SendAction(ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); return; } Int64 newCatId = service.CategoryCreateSimple(View.Name, View.Description, View.Type); if (newCatId > 0) { IList <Domain.DTO.DTO_CategoryRole> Roles = new List <Domain.DTO.DTO_CategoryRole>(); Int32 USerId = View.SelectedManagerID; //View.Roles; //new List<Domain.DTO.DTO_CategoryRole>(); if (USerId <= 0) { Domain.DTO.DTO_CategoryRole ManRole = new Domain.DTO.DTO_CategoryRole(); ManRole.IsManager = true; ManRole.PersonId = UserContext.CurrentUserID; Roles.Add(ManRole); } else { Domain.DTO.DTO_CategoryRole ManRole = new Domain.DTO.DTO_CategoryRole(); ManRole.IsManager = true; ManRole.PersonId = USerId; Roles.Add(ManRole); } Domain.DTO.DTO_AddRolesResponse roleResponse = service.CategoryRolesAdd(newCatId, Roles); //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(this.UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetCategory(newCatId)); View.SendAction(ModuleTicket.ActionType.CategoryCreate, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action //Gestire eventuali errori nell'aggiunta, tramite roleResponse... //View.CurrentCategoryId = newCatId; View.NavigateToEdit(newCatId); //InitView(); } else { //Manage Error } }
public void PermissionUserDelete(Int64 permissionId) { if (!CheckSession()) { return; } Int64 responsePermissionId = service.SettingPermissionUserDelete(permissionId); if (responsePermissionId > 0) { //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); //Objects.Add(ModuleTicket.KVPgetPerson(UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetPermission(responsePermissionId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.PermissionRemove, View.ViewCommunityId, ModuleTicket.InteractionType.UserWithUser, Objects); //End Action this.InitView(GlobalAdminStatus.none); //Show OK } else { //show error this.InitView(GlobalAdminStatus.InternalError); } }
public void InitView() { if (!CheckSessionAccess()) { return; } if (!(Module.ManageCategory || Module.Administration)) { View.SendAction(ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); return; } //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(this.UserContext.CurrentUserID)); View.SendAction(ModuleTicket.ActionType.CategoryLoadManage, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action //int comTypeId = (from Community com in Man this.CurrentCommunityId this.View.Initialize(service.CategoryTypeGetPermission(this.CurrentCommunityId)); this.UpdateManager(); }
//TODO: notification - V - test public void ChangeStatus(Int64 TicketId, Domain.Enums.TicketStatus Status, Domain.Enums.MessageUserType UserType) { if (!CheckSessionAccess()) { return; } Int64 messageId = 0; Boolean Changed = service.TicketStatusModify(TicketId, Status, View.GetChangeStatusMessage(Status), true, UserType, ref messageId); //Begin Action if (Changed) { Int64 userId = service.UserGetIdfromPerson(UserContext.CurrentUserID); List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(userId)); Objects.Add(ModuleTicket.KVPgetTicket(TicketId)); View.SendUserActions( service.ModuleID, ModuleTicket.ActionType.TicketStatusChanged, View.ViewCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action //TODO: Notification - TEST if (messageId > 0) { SendNotification(messageId, userId, ModuleTicket.NotificationActionType.StatusChanged); } } }
///// <summary> ///// Annulla e va al tree ///// </summary> //public void ToTree() //{ // //?? //} ///// <summary> ///// Passa al secondo step ///// </summary> //public void Continue() //{ // View.ShowStep2(); //} ///// <summary> ///// Riassegne le categorie... (TO DO) ///// </summary> ///// <param name="Reassigment"></param> //public void Reassign(IList<Domain.DTO.DTO_CategoryReassign> Reassigment) //{ // View.Close(); //} public Boolean DeleteCategory(String ReassignMessage, long ReassignId, bool MoveUp) { Boolean Result = false; if (MoveUp) { Result = service.CategoryDeletePutUp(View.CategoryId); } else { Result = service.CategoryDeleteAll(View.CategoryId, ReassignId, ReassignMessage); } if (Result) { //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(this.UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetCategory(View.CategoryId)); View.SendAction(ModuleTicket.ActionType.CategoryUndelete, View.CommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action } return(Result); }
//TODO: notification - V - TEST public void CategoryReassign(Int64 NewCategoryID) { if (NewCategoryID <= 0) { this.InitView(); this.View.ShowAssignError(CategoryReassignError.noChange); return; } if (!CheckSessionAccess()) { View.ShowNoPermission(); return; // Domain.Enums.CategoryReassignError.noPermission; } if (!service.UserHasManResTicketPermission(View.TicketId)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); return;// Domain.Enums.CategoryReassignError.noPermission; } Int64 messageId = 0; Domain.Enums.CategoryReassignError Response = service.TicketAssignToCategory(View.TicketId, NewCategoryID, View.GetChangeCategoryMessage(), View.UserType, true, ref messageId); if (Response == Domain.Enums.CategoryReassignError.none) { Int64 userId = this.service.UserGetIdfromPerson(UserContext.CurrentUserID); //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); Objects.Add(ModuleTicket.KVPgetCategory(NewCategoryID)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketAssignCategory, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action //TODO: Notification - test if (messageId > 0) { SendNotification(messageId, userId, ModuleTicket.NotificationActionType.AssignmentCategory); } this.InitView(); this.View.ShowCategoryChanged(); } else { this.InitView(); this.View.ShowAssignError(Response); } //return Response; }
//TODO: Notification - V - TEST public void SetBehalfPerson(Int32 PersonId, bool HideToOwner) { View.ShowBehalfError(Domain.Enums.BehalfError.none); if (!CheckSessionAccess()) { //Session error return; } Domain.TicketUser Usr = service.UserGetfromPerson(UserContext.CurrentUserID); if (Usr.Person == null) { View.ShowBehalfError(Domain.Enums.BehalfError.NoPermission); //Error: external? return; } if (!service.SettingPermissionGet(Usr.Id, Usr.Person.TypeID, Domain.Enums.PermissionType.Behalf)) { View.ShowBehalfError(Domain.Enums.BehalfError.NoPermission); //Error: no permission return; } Int64 messageId = 0; // -- SET BEHALF -- if (!service.TicketSetBehalfPerson(View.TicketId, PersonId, HideToOwner, ref messageId)) { View.ShowBehalfError(Domain.Enums.BehalfError.dBerror); return; //Error: dB } //TODO: Notification - TEST if (messageId > 0) //se MINORE <= 0 il Ticket è in DRAFT! { Int64 userId = service.UserGetIdfromPerson(UserContext.CurrentUserID); SendNotification(messageId, userId, ModuleTicket.NotificationActionType.OwnerChanged); } //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(PersonId)); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.BehalfTicketSet, CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action this.InitView(); View.ShowBehalfError(Domain.Enums.BehalfError.success); //OK on page }
//TODO: Notification - V - test public void AssignMe() { if (!CheckSessionAccess()) { return; } if (!service.UserHasManResTicketPermission(View.TicketId)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); } Int64 messageId = 0; bool IsManager = false; if (View.UserType == Domain.Enums.MessageUserType.Manager || View.UserType == Domain.Enums.MessageUserType.CategoryManager) { IsManager = true; } Boolean Assigned = service.TicketAssignToCurrent( View.TicketId, View.UserType, View.GetChangeUserMessage(), false, IsManager, ref messageId); if (Assigned) { //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketAssignPerson, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action //TODO: Notification - test if (messageId > 0) { Int64 userId = this.service.UserGetIdfromPerson(UserContext.CurrentUserID); SendNotification(messageId, userId, ModuleTicket.NotificationActionType.AssignmentUser); } } this.InitView(); if (!Assigned) { View.ShowAssignUsrError(UserReassignError.Current); } else { View.ShowAssignUsrError(UserReassignError.none); } }
public void SendTimerAction() { if (CheckUser()) { List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID))); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketLoadEditUser, -1, ModuleTicket.InteractionType.UserWithLearningObject, Objects); } }
public void SendTimerAction() { if (service.UserHasManResTicketPermission(View.TicketId)) { List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketLoadEditManRes, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); } }
//TODO: Notification - V - TEST public void RemoveBehalf() { View.ShowBehalfError(BehalfError.none); if (!CheckSessionAccess()) { return; } Domain.TicketUser Usr = service.UserGetfromPerson(UserContext.CurrentUserID); if (Usr.Person == null) { View.ShowBehalfError(BehalfError.NoPermission); return; } //if (!service.SettingPermissionGet(Usr.Id, Usr.Person.TypeID, PermissionType.Behalf)) //{ // View.ShowBehalfError(BehalfError.NoPermission); // return; //} Int64 messageId = 0; if (!service.TicketSetBehalfCurrent(View.CurrentTicketId, ref messageId)) { View.ShowBehalfError(BehalfError.dBerror); } //TODO: Notification - TEST if (messageId > 0) //se MINORE <= 0 il Ticket è in DRAFT! { Int64 userId = service.UserGetIdfromPerson(UserContext.CurrentUserID); SendNotification(messageId, userId, ModuleTicket.NotificationActionType.OwnerChanged); } //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); //Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID))); Objects.Add(ModuleTicket.KVPgetTicket(View.CurrentTicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.BehalfTicketRemove, View.ViewCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action this.InitView(); View.ShowBehalfError(BehalfError.deleteSuccess); //OK on page }
//TODO: Notification - V - TEST public void ReopenTicket() { if (!CheckSessionAccess()) { return; } //String ReopenText = "ToDo : Get reopen text from View!"; //ReopenText = ""; //View.ShowReopenError(); Domain.Enums.TicketMessageSendError SendError = Domain.Enums.TicketMessageSendError.none; //Boolean ChangeError = false; //if(String.IsNullOrEmpty(ReopenText)) // ChangeError = service.TicketChangeStatus(View.TicketId, Domain.Enums.TicketStatus.open); //else //SendError = service.MessageSendUser( // View.TicketId, // , // "", // true, // Domain.Enums.TicketStatus.open); Int64 NewMessageId = 0; Boolean Changed = service.TicketStatusModify(View.TicketId, Domain.Enums.TicketStatus.open, View.GetChangeStatusMessage(Domain.Enums.TicketStatus.open), true, Domain.Enums.MessageUserType.Partecipant, ref NewMessageId); //if (SendError != Domain.Enums.TicketMessageSendError.none) // View.ShowSendError(SendError); //else Int64 userId = service.UserGetIdfromPerson(UserContext.CurrentUserID); if (!Changed) { this.View.ShowChangeStatusError(true); //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(userId)); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketStatusChanged, CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action SendNotification(NewMessageId, userId, ModuleTicket.NotificationActionType.StatusChanged); } else { this.InitView(); } //init view!!!!!! SE TUTTOP OK!!!! }
public Boolean DeleteCategory(String ReassignMessage, IDictionary <long, long> Reassignments) { Boolean Result = service.CategoryDeleteAll(View.CategoryId, Reassignments, ReassignMessage); //Begin Action if (Result) { List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(this.UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetCategory(View.CategoryId)); View.SendAction(ModuleTicket.ActionType.CategoryUndelete, View.CommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); } //End Action return(Result); }
public void Save(IList <Domain.liteCategoryReorderItem> Items, Boolean Refresh) { if (!CheckSessionAccess()) { return; } if (!(Module.ManageCategory || Module.Administration)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); //View.ShowNoPermission(); View.ShowMessage(Domain.Enums.CategoryTreeMessageType.NoPermission); return; } Domain.Enums.CategoryReorderResponse Saved = service.CategoryReorder(Items); //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(this.UserContext.CurrentUserID)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.CategoryReorder, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action if (Refresh) { this.InitView(); } switch (Saved) { case Domain.Enums.CategoryReorderResponse.Error: View.ShowMessage(Domain.Enums.CategoryTreeMessageType.UnSaved); break; case Domain.Enums.CategoryReorderResponse.NoDefaultReorder: View.ShowMessage(Domain.Enums.CategoryTreeMessageType.DefaultReorderWarning); break; case Domain.Enums.CategoryReorderResponse.Success: View.ShowMessage(Domain.Enums.CategoryTreeMessageType.Saved); break; } }
public void SendTimerAction() { if (CheckSessionAccess()) { List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID))); if (View.CurrentTicketId > 0) { Objects.Add(ModuleTicket.KVPgetTicket(View.CurrentTicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.ExternalCreate, -1, ModuleTicket.InteractionType.None, Objects); } else { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.ExternalCreate, -1, ModuleTicket.InteractionType.None, Objects); } } }
//TODO: notification - V - TEST public void TicketChangeCondition(Domain.Enums.TicketCondition Condition, bool status) { if (!CheckSessionAccess()) { return; } if (!service.UserHasManResTicketPermission(View.TicketId)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); } Int64 messageId = 0; Boolean Changed = service.TicketConditionModify( View.TicketId, Condition, status, View.GetChangeConditionMessage(Condition), true, View.UserType, ref messageId); if (Changed) { //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(this.service.UserGetIdfromPerson(UserContext.CurrentUserID))); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketStatusChanged, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action //TODO: Notification - test if (messageId > 0) { Int64 userId = this.service.UserGetIdfromPerson(UserContext.CurrentUserID); SendNotification(messageId, userId, ModuleTicket.NotificationActionType.ModerationChanged); } this.InitView(); } else { //Mange Errors } }
/// <summary> /// Inizializzazione View. /// NOTA: i valori dei filtri vanno allineati "a mano" tra view ed inizializzazione dell'oggetto "DTO_ListFilterUser": IN REVISIONE! /// </summary> public void InitView(Domain.Enums.TicketDraftDeleteError DeleteError = Domain.Enums.TicketDraftDeleteError.hide) { if (!CheckSessionAccess()) { return; } if (View.ViewCommunityId != UserContext.CurrentCommunityID) { View.ViewCommunityId = UserContext.CurrentCommunityID; } View.ShowDeletMessage(DeleteError); Domain.DTO.DTO_ListInit FiltersInit = new Domain.DTO.DTO_ListInit(); ////DDL Lingue //Filters.r_availableLanguages = service.LanguagesGetAvailableSys(); //Categorie disponibili - TO DO - FiltersInit.Categories = service.CategoriesGetTreeDLL(-1, CategoryTREEgetType.FilterUser); View.InitFilters(FiltersInit); //UpdateInfo(); //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID))); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketListUser, View.ViewCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action //BindList(new Domain.DTO.DTO_ListFilterUser()); }
public void ChangeMsgVisibility(Int64 MessageId, Boolean IsVisible) { if (!CheckSessionAccess()) { return; } if (!service.UserHasManResTicketPermission(View.TicketId)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); } Boolean Changed = service.MessageChangeVisibility(View.TicketId, MessageId, IsVisible, View.UserType); if (Changed) { //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(this.service.UserGetIdfromPerson(UserContext.CurrentUserID))); Objects.Add(ModuleTicket.KVPgetMessage(MessageId)); if (IsVisible) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.MessageShow, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //TODO: Notification (If IsLastMessage...) } else { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.MessageHide, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); } //End Action InitView(); } }
public void InitView() { if (!CheckUser()) { return; } //if (View.ViewCommunityId != UserContext.CurrentCommunityID) View.ViewCommunityId = -1; Domain.DTO.DTO_UserModify Data = service.TicketGetUserExt(View.TicketId, View.CurrentUser); if (Data.Errors == Domain.Enums.TicketEditUserErrors.none) { View.InitView(Data); //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID))); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketLoadEditUser, -1, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action View.TicketId = Data.TicketId; View.DraftMsgId = (Data.DraftMessage != null) ? Data.DraftMessage.Id : -1; } else if (Data.Errors == Domain.Enums.TicketEditUserErrors.IsDraft) { View.ShowDraft(Data.TicketId); } else if (Data.Errors == Domain.Enums.TicketEditUserErrors.NoPermission) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.AppContext.UserContext.CurrentCommunityID, ModuleTicket.InteractionType.None); } }
public void Save(Boolean UpdateView, Boolean SaveUsers = true) { if (!CheckSessionAccess()) { return; } if (!(Module.ManageCategory || Module.Administration)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); return; } //Se la view non è valida, non faccio nulla (la view si arrangia a mostrare gli errori (Nome vuoto) if (!View.Validate()) { return; } lm.Comol.Core.DomainModel.Languages.LanguageItem Lang = View.PreviousLanguage; Domain.Category Cat = View.Category; Domain.Enums.CategoryAddModifyError Error = service.CategoryModify(Cat.Id, Cat.Name, Cat.Description, Cat.Type, Lang); Domain.Enums.CategoryAssignersError ResError = Domain.Enums.CategoryAssignersError.none; if (SaveUsers) { ResError = service.CategoryUserUpdate(Cat.Id, View.UsersSettings); } if (Error == Domain.Enums.CategoryAddModifyError.none) { //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(this.UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetCategory(Cat.Id)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.CategoryModify, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action } if (ResError != Domain.Enums.CategoryAssignersError.none) { Domain.DTO.DTO_CategoryCheckResponse resp = service.CategoryUsersCheck(Cat.Id); if (!resp.PreviousAssigned) { if (UpdateView) { this.InitView(); //this.UpdateView(null); } View.ShowForcedReassigned(resp); return; } } if (Error == Domain.Enums.CategoryAddModifyError.none) { if (UpdateView) { this.UpdateView(null); } View.ShowReassignError(ResError); return; } else { //Other error } }
public bool SaveTicket(Domain.DTO.DTO_Ticket TkData, Boolean ForUpload = false) { if (!CheckUser()) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, -1, ModuleTicket.InteractionType.None); View.ShowCantCreate(false, false); return(false); } Domain.Enums.TicketCreateError Error = Domain.Enums.TicketCreateError.none; Domain.Enums.TicketAddCondition Cond = service.PermissionTicketUsercanCreateExternal(); if (Cond == Domain.Enums.TicketAddCondition.CheckCount) { if (TkData.IsDraft) { if (!(service.TicketGetNumDraft(TkData.CreatorId) <= Access.MaxDraft)) { Error = Domain.Enums.TicketCreateError.ToMuchDraft; } } else { if (!(service.TicketGetNumOpen(TkData.CreatorId) <= Access.MaxSended)) { Error = Domain.Enums.TicketCreateError.ToMuchTicket; } } } else if (Cond != Domain.Enums.TicketAddCondition.CanCreate) { Error = Domain.Enums.TicketCreateError.NoPermission; } if (Error != Domain.Enums.TicketCreateError.none) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowError(Error); return(false); } //Boolean CanCreate = false; //if (Cond == Domain.Enums.TicketAddCondition.CanCreate) // CanCreate = true; //else if (Cond == Domain.Enums.TicketAddCondition.CheckCount) //{ // if (TkData.IsDraft) // { // if (service.TicketGetNumDraft(TkData.UserId) <= Access.MaxDraft) // CanCreate = true; // } // else // { // if (service.TicketGetNumOpen(TkData.UserId) <= Access.MaxSended) // CanCreate = true; // } //} //if (!CanCreate) //{ // View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, -1, ModuleTicket.InteractionType.None); // //View.SendAction(ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId); // //View.SendAction(ModuleTicket.ActionType.NoPermission); // View.ShowCantCreate(false); // return; //} Error = service.TicketCreateExternal(View.CurrentUser, ref TkData); if (Error == Domain.Enums.TicketCreateError.none || TkData.IsDraft && Error != Domain.Enums.TicketCreateError.NoCategory) { //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(TkData.CreatorId)); Objects.Add(ModuleTicket.KVPgetTicket(TkData.TicketId)); if (TkData.IsDraft) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketCreateDraft, -1, ModuleTicket.InteractionType.UserWithLearningObject, Objects); } else { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketCreate, -1, ModuleTicket.InteractionType.UserWithLearningObject, Objects); } //End Action service.NotificationSetTicketCreatorExternal(TkData.TicketId, TkData.MailSettings, View.CurrentUser.UserId); if (!TkData.IsDraft) { SendNotification(TkData.DraftMsgId, TkData.CreatorId, ModuleTicket.NotificationActionType.TicketSend); } View.TicketCreated(TkData.TicketId, TkData.IsDraft); } else { View.ShowError(Error); return(false); } return(true); }
//TODO: notification - V - test public Boolean SaveTicket(Domain.DTO.DTO_Ticket TkData, Domain.Enums.MailSettings ownerSettings, Domain.Enums.MailSettings creatorSettings, Boolean ForUpload = false) { if (!CheckSessionAccess()) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, -1, ModuleTicket.InteractionType.None); View.ShowError(Domain.Enums.TicketCreateError.NoPermission); return(false); } Domain.Enums.TicketCreateError Error = Domain.Enums.TicketCreateError.none; Domain.Enums.TicketAddCondition Cond = service.PermissionTicketUsercanCreate(); if (Cond == Domain.Enums.TicketAddCondition.CheckCount) { if (TkData.IsDraft) { if (!(service.TicketGetNumDraft(TkData.CreatorId) <= Access.MaxDraft)) { Error = Domain.Enums.TicketCreateError.ToMuchDraft; } } else { if (!(service.TicketGetNumOpen(TkData.CreatorId) <= Access.MaxSended)) { Error = Domain.Enums.TicketCreateError.ToMuchTicket; } } } else if (Cond != Domain.Enums.TicketAddCondition.CanCreate) { Error = Domain.Enums.TicketCreateError.NoPermission; } if (Error != Domain.Enums.TicketCreateError.none) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowError(Error); return(false); } Error = service.TicketCreate(ref TkData); Boolean CanSave = false; if (Error == Domain.Enums.TicketCreateError.none) { CanSave = true; } else if (Error == Domain.Enums.TicketCreateError.NoCategory || Error == Domain.Enums.TicketCreateError.NoText || Error == Domain.Enums.TicketCreateError.NoTitle) { CanSave = ForUpload || TkData.IsDraft; } if (CanSave) { //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(TkData.CreatorId)); Objects.Add(ModuleTicket.KVPgetTicket(TkData.TicketId)); if (TkData.IsDraft) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketCreateDraft, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); } else { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketCreate, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); } //End Action //NOTIFICATION //Se DISABLED, SOLO per il creator corrente (no behalf) if (ownerSettings != MailSettings.DISABLED) { bool IsOwner = creatorSettings == MailSettings.DISABLED; service.NotificationSetTicketOwner(TkData.TicketId, ownerSettings, IsOwner); } if (creatorSettings != MailSettings.DISABLED) { service.NotificationSetTicketCreatorCurrent(TkData.TicketId, creatorSettings); } //TODO: notification - test if (!TkData.IsDraft) { SendNotification(TkData.DraftMsgId, TkData.CreatorId, ModuleTicket.NotificationActionType.TicketSend); //SE inviato il DraftMsgdiventa il Primo messaggio. //Il Creator è sempre quello che "fa fede" sulle logiche di invio. } View.TicketCreated(TkData.TicketId, TkData.IsDraft); if (!ForUpload) { this.InitView(); } } else { View.ShowError(Error); return(false); } return(true); }
public void InitView() { if (!CheckSessionAccess()) { return; } int ColUserId = this.UserContext.CurrentUserID; Domain.DTO.DTO_ManagerModify Data = service.TicketGetManager(View.TicketId, View.MassageFilter, View.MessagesOrder); if (Data.Errors == TicketEditManErrors.NoPermission)// (!service.UserHasManResTicketPermission(View.TicketId)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); } //Int32 CommunityId = UserContext.CurrentCommunityID; IList <Domain.DTO.DTO_CategoryTree> Categories = service.CategoriesGetTreeDLL(CurrentCommunityId, CategoryTREEgetType.FilterManager); //service.CategoryGetDDLManRes_ComCurrent(); View.UserType = Data.CurrentUserType; //this.CurrentCommunityId // lm.Comol.Core.FileRepository.Domain.ModuleRepository cRepository = service.GetRepositoryPermissions(CurrentCommunityId, ColUserId); //List<iCoreItemFileLink<long>> alreadyLinkedFiles = new List<iCoreItemFileLink<long>>(); ////= new List<iCoreItemFileLink<long>>(); ////Link di comunità già usati //if (Data.DraftMessage != null && Data.DraftMessage.Attachments.Any()) //{ // alreadyLinkedFiles = (from Domain.TicketFile fl in Data.DraftMessage.Attachments // where fl.File != null && fl.Link != null // select new dtoCoreItemFileLink<long>() // { // CreatedBy = fl.CreatedBy, // CreatedOn = fl.CreatedOn, // Deleted = fl.Deleted, // ItemFileLinkId = fl.Id, // StatusId = 0, // Link = fl.Link, // ModifiedBy = fl.ModifiedBy, // ModifiedOn = fl.ModifiedOn, // Owner = fl.CreatedBy, // isVisible = (fl.Deleted == BaseStatusDeleted.None && !fl.File.isDeleted), // File = fl.File // }).ToList<iCoreItemFileLink<long>>(); // //fl.Link.DestinationItem.ObjectLongID // // && fl.Visibility == Domain.Enums.FileVisibility.visible // //NO: se non è visibile, non lo è per l'utente, manager e resolver lo possono vedere E comunque non posso linkarlo nuovamente. //} //if (alreadyLinkedFiles == null) // alreadyLinkedFiles = new List<iCoreItemFileLink<long>>(); bool hasComManager = service.UsersCommunityHasManRes(CurrentCommunityId, Data.UserAssignedId); bool hasCommunity = (CurrentCommunityId > 0); View.InitView( Data, Categories, service.CategoryGetDTOCatTree(Data.CategoryCurrentId), service.UploadAvailableActionsGet( Data.CurrentUserType, CurrentCommunityId, ColUserId, cRepository), cRepository, CurrentCommunityId, (Data.DraftMessage == null ? 0 : Data.DraftMessage.Id), hasComManager, hasCommunity); if (Data.Errors == Domain.Enums.TicketEditManErrors.none) { View.DraftMsgId = Data.DraftMessage.Id; View.TicketId = Data.TicketId; } //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketLoadEditManRes, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action }
public void InitView() { if (!CheckSessionAccess()) { return; } //Boolean IsNewAndOtherTicket = false; Domain.DTO.DTO_AddInit values = new Domain.DTO.DTO_AddInit(); //Utente Domain.TicketUser Usr = service.UserGetfromPerson(UserContext.CurrentUserID); if (Usr == null) { View.DisplaySessionTimeout(View.ViewCommunityId); return; } Domain.Enums.TicketAddCondition Cond = service.PermissionTicketUsercanCreate(); if (Cond == Domain.Enums.TicketAddCondition.CheckCount && service.TicketGetNumOpen(Usr.Id) >= Access.MaxSended) { View.ShowCantCreate(Domain.Enums.CantCreate.MaxSend); } int DraftNum = service.TicketGetNumDraft(Usr.Id); //DDL Lingue values.availableLanguages = service.LanguagesGetAvailableSys(); int CommunityId = CurrentCommunityId; //Ticket (Se draft, altrimenti nuovo!) Domain.DTO.DTO_Ticket Tk = new Domain.DTO.DTO_Ticket(); if (View.CurrentTicketId <= 0) { //Controllo se può creare nuovi Ticket (Bozze) if (!(Cond == Domain.Enums.TicketAddCondition.CanCreate || (Cond == Domain.Enums.TicketAddCondition.CheckCount && (DraftNum < Access.MaxDraft)))) { if (View.CurrentTicketId <= 0) { View.ShowCantCreate(Domain.Enums.CantCreate.MaxDraftNoSend); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, CommunityId, ModuleTicket.InteractionType.None); return; } } //Creo un nuovo Ticket in BOZZA Tk = service.TicketCreateNewDraft(Usr.Id, CommunityId, View.GetDraftTitle(), View.GetDraftPreview()); values.IsNew = true; //Una volta creato, redirezione alla pagina con il ticket appena creato, per evitare problema F5. View.GotoNewTicketCreated(Tk.Code); return; } else { //Prendo il Ticket in Bozza Tk = service.TicketGetDraft(View.CurrentTicketId); } //SE Ticket == null o cercano di accedere ad un Ticket non valido //o non è possibile creare un nuovo Ticket. if (Tk == null || Tk.TicketId <= 0 || !Tk.IsDraft) { View.ShowCantCreate(Domain.Enums.CantCreate.permission); return; } //Carico Ticket (Nuovo, appena creato o precedente che sia) CommunityId = Tk.CommunityId; View.CurrentTicketId = Tk.TicketId; View.ViewCommunityId = CommunityId; View.DraftMsgId = Tk.DraftMsgId; values.TicketData = Tk; values.CurrentCommunityId = CommunityId; values.FileCommunityId = CurrentCommunityId; //Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID))); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.ExternalCreate, -1, ModuleTicket.InteractionType.None, Objects); //End Action values.HasOtherDraft = (values.IsNew && DraftNum > 0); this.UpdateCommunity(CommunityId, Tk.CategoryId); //USER! values.CurrentUser.UserId = Usr.Id; if (Usr.Person != null) { values.CurrentUser.PersonId = Usr.Person.Id; values.CurrentUser.Name = Usr.Person.Name; values.CurrentUser.SName = Usr.Person.Surname; values.CurrentUser.LanguageCode = Usr.LanguageCode; values.CurrentUser.Mail = Usr.Person.Mail; } else { values.CurrentUser.PersonId = 0; values.CurrentUser.Name = Usr.Name; values.CurrentUser.SName = Usr.Sname; values.CurrentUser.LanguageCode = Usr.LanguageCode; // TicketService.LangMultiCODE; //OR SYS DEFAULT!? values.CurrentUser.Mail = Usr.mail; } //Behalf if (Usr.Person != null) { values.CanBehalf = service.SettingPermissionGet(Usr.Id, Usr.Person.TypeID, Domain.Enums.PermissionType.Behalf); } else { values.CanBehalf = false; } // Notification (sono state messe qui a differenza di "Edit" in cui sono messe nel service. // SPOSTARE IN SERVICE? if (Tk.IsBehalf) { if (Tk.HideToOwner) { bool isdefaultCreator = false; values.CreatorMailSettings = service.MailSettingsGet(Usr.Id, Tk.TicketId, false, ref isdefaultCreator); values.IsDefaultNotCreator = isdefaultCreator; values.OwnerMailSettings = MailSettings.none; values.IsDefaultNotOwner = true; } else { bool isdefaultOwner = false; bool isdefaultCreator = false; values.CreatorMailSettings = service.MailSettingsGet(Usr.Id, Tk.TicketId, false, ref isdefaultCreator); values.IsDefaultNotCreator = isdefaultCreator; values.OwnerMailSettings = service.MailSettingsGet(Tk.OwnerId, Tk.TicketId, false, ref isdefaultOwner); values.IsDefaultNotOwner = isdefaultOwner; } values.IsCreatorNotificationEnable = Usr.IsNotificationActiveUser; values.IsOwnerNotificationEnable = Tk.IsOwnerNotificationActive; } else { values.OwnerMailSettings = MailSettings.none; bool isdefaultCreator = false; values.CreatorMailSettings = service.MailSettingsGet(Usr.Id, Tk.TicketId, false, ref isdefaultCreator); values.IsDefaultNotCreator = isdefaultCreator; values.IsDefaultNotOwner = true; values.IsCreatorNotificationEnable = Usr.IsNotificationActiveUser; //values.IsOwnerNotificationEnable = Usr.IsNotificationActiveUser; } values.CanListUsers = CanListUsers(UserContext.CurrentCommunityID); //Upload File comunità //Repository 4 upload int CurPersId = (Usr.Person != null) ? Usr.Person.Id : 0; lm.Comol.Core.FileRepository.Domain.ModuleRepository cRepository = service.GetRepositoryPermissions(values.FileCommunityId, CurPersId); List <RepositoryAttachmentUploadActions> actions = service.UploadAvailableActionsGet(MessageUserType.Partecipant, values.FileCommunityId, Usr.Person.Id, cRepository); //if (values.TicketData.Attachments != null && values.TicketData.Attachments.Any()) //{ // alreadyLinkedFiles = (from Domain.DTO.DTO_AttachmentItem atc in values.TicketData.Attachments // where atc.File != null && atc.Link != null // select new dtoCoreItemFileLink<long>() // { // CreatedBy = atc.CreatedBy, // CreatedOn = atc.CreatedOn, // Deleted = atc.Deleted, // ItemFileLinkId = atc.IdAttachment,//fl.Id, // StatusId = 0, // Link = atc.Link, // Owner = atc.CreatedBy, // isVisible = (atc.Deleted == BaseStatusDeleted.None && !atc.File.isDeleted), // File = atc.File // }).ToList<iCoreItemFileLink<long>>(); // //ModifiedBy = atc.ModifiedBy, // //ModifiedOn = atc.ModifiedOn, // // && fl.Visibility == Domain.Enums.FileVisibility.visible // //NO: se non è visibile, non lo è per l'utente, manager e resolver lo possono vedere E comunque non posso linkarlo nuovamente. //} RepositoryAttachmentUploadActions dAction = RepositoryAttachmentUploadActions.none; View.InitView(values, actions, dAction, cRepository, Tk.DraftMsgId); initCommunitySelector(Tk.CommunityId); }
//TODO: notification - V - test public void SendMessage( String Text, String Preview, Boolean HideToUser, Domain.Enums.TicketStatus NewStatus, Domain.Enums.MessageType MsgType, Int64 DraftId) { if (!CheckSessionAccess()) { return; } if (!service.UserHasManResTicketPermission(View.TicketId)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); } if (DraftId <= 0) { this.InitView(); return; } if (this.service.MessageCheckDraft(DraftId)) { this.InitView(); return; } Domain.Enums.TicketMessageSendError error = Domain.Enums.TicketMessageSendError.none; Int64 messageId = 0; Int64 userId = this.service.UserGetIdfromPerson(UserContext.CurrentUserID); if (NewStatus == Domain.Enums.TicketStatus.closeSolved || NewStatus == Domain.Enums.TicketStatus.closeUnsolved) { error = service.MessageSendMan(View.TicketId, Text, Preview, HideToUser, MsgType, View.UserType, false, ref messageId); service.TicketStatusModify(View.TicketId, NewStatus, View.GetChangeStatusMessage(NewStatus), true, View.UserType, ref messageId); //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(userId)); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketStatusChanged, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action } else { service.TicketStatusModify(View.TicketId, NewStatus, View.GetChangeStatusMessage(NewStatus), false, View.UserType, ref messageId); error = service.MessageSendMan(View.TicketId, Text, Preview, HideToUser, MsgType, View.UserType, true, ref messageId); } if (error == Domain.Enums.TicketMessageSendError.none) { //Int64 userId = this.service.UserGetIdfromPerson(UserContext.CurrentUserID); //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(userId)); Objects.Add(ModuleTicket.KVPgetMessage(messageId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.MessageSend, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action //ToDo: Send Notification if (messageId > 0) { SendNotification(messageId, userId, ModuleTicket.NotificationActionType.MassageSend); } this.InitView(); } //else View.ShowSendError(error); }
/// <summary> /// Al primo caricamento della pagina! /// </summary> public void InitView() { if (!CheckSessionAccess()) { return; } if (!(Module.ManageCategory || Module.Administration)) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, this.CurrentCommunityId, ModuleTicket.InteractionType.None); View.ShowNoPermission(); return; } Domain.Category Category = new Domain.Category(); //View.CommunityCategories = service.CategoriesGetCommunity(true); if (View.CurrentCategoryId > 0) { //Categoria Domain.Category Cat = service.CategoryGetDetached(View.CurrentCategoryId, Domain.Enums.RolesLoad.all, false); if (Cat == null || Cat.Id <= 0 || Cat.IdCommunity != CurrentCommunityId) { View.ShowWrongCategory(); return; } Domain.DTO.DTO_CategoryTypeComPermission Permission = service.CategoryTypeGetPermission(this.CurrentCommunityId); View.InitCategories(Permission, Cat.Type, Cat.IsDefault); View.Category = Cat; //Traduzioni List <lm.Comol.Core.DomainModel.Languages.LanguageItem> langs = new List <lm.Comol.Core.DomainModel.Languages.LanguageItem>(); //List<Domain.DTO.DTO_CategoryTranslation> translations = new List<Domain.DTO.DTO_CategoryTranslation>(); langs = (from t in Cat.Translations where t.Deleted == BaseStatusDeleted.None select new lm.Comol.Core.DomainModel.Languages.LanguageItem { IsMultiLanguage = (t.LanguageId == TicketService.LangMultiID) ? true : false, Id = t.LanguageId, Code = (t.LanguageId == TicketService.LangMultiID) ? t.LanguageCode.ToUpper() : t.LanguageCode, Name = (t.LanguageId == TicketService.LangMultiID) ? t.LanguageName.ToUpper() : t.LanguageName, Status = DomainModel.Languages.ItemStatus.valid }).Distinct().ToList(); //.OrderBy(li => li.IsMultiLanguage).ThenBy(li => li.Code).ToList(); //.OrderBy(li => li.Code).ToList(); //langs = langs.OrderBy(li => li.IsMultiLanguage).ToList(); //.OrderBy(li => li.IsMultiLanguage).ThenBy(li => li.Code).Distinct().ToList(); ////TEST!!! //String TEST = ""; //foreach (lm.Comol.Core.DomainModel.Languages.LanguageItem _lng in langs) //{ // TEST += _lng.Code + " - " + _lng.Name + " - " + _lng.IsMultiLanguage + "/r/n"; //} //langs = langs.OrderBy(li => li.IsMultiLanguage).ThenBy(li => li.Code).ToList(); //TEST += "/r/n ------- /r/n"; //foreach(lm.Comol.Core.DomainModel.Languages.LanguageItem _lng in langs) //{ // TEST += _lng.Code + " - " + _lng.Name + " - " + _lng.IsMultiLanguage + "/r/n"; //} ////END TEST!!! lm.Comol.Core.DomainModel.Languages.LanguageItem current = (from lm.Comol.Core.DomainModel.Languages.LanguageItem lng in langs where lng.Id == TicketService.LangMultiID select lng).FirstOrDefault(); View.BindLanguages(service.LanguagesGetAvailableSys().Distinct().ToList(), langs, current); View.PreviousLanguage = current; //UTENTI IList <Domain.DTO.DTO_UserRole> roles = (from Domain.LK_UserCategory lkcat in Cat.UserRoles select new Domain.DTO.DTO_UserRole() { User = lkcat.User, IsManager = lkcat.IsManager }).ToList(); int Managercount = (from Domain.DTO.DTO_UserRole rl in roles where rl.IsManager == true select rl.IsManager).Count(); if (Managercount <= 1) { View.ShowDeleteManagers = false; } else { View.ShowDeleteManagers = true; } //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetPerson(this.UserContext.CurrentUserID)); Objects.Add(ModuleTicket.KVPgetCategory(Cat.Id)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.CategoryLoadManage, this.CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action View.AssociatedUsers = roles; View.ShowForcedReassigned(null); } else { View.RedirectToList(); //Vai alla creazione! //View.Category = new Domain.Category(); } //Category; }
//TODO: Notification - V - TEST public void SendMessage( string Text, string Preview, Boolean CloseMessage, Boolean IsSolved) { if (!CheckSessionAccess()) { return; } Domain.Enums.TicketStatus status = (IsSolved)? Domain.Enums.TicketStatus.closeSolved : Domain.Enums.TicketStatus.closeUnsolved; if (service.MessageCheckDraft(View.DraftMsgId)) { this.InitView(); return; } Int64 NewMessageId = View.DraftMsgId; Domain.Enums.TicketMessageSendError Errors = service.MessageSendUser(View.TicketId, Text, Preview, ref NewMessageId); //, CloseMessage, status); Boolean Changed = true; if (CloseMessage) { if (IsSolved) { Changed = service.TicketStatusModify(View.TicketId, Domain.Enums.TicketStatus.closeSolved, View.GetChangeStatusMessage(Domain.Enums.TicketStatus.closeSolved), false, Domain.Enums.MessageUserType.Partecipant, ref NewMessageId); } else { Changed = service.TicketStatusModify(View.TicketId, Domain.Enums.TicketStatus.closeUnsolved, View.GetChangeStatusMessage(Domain.Enums.TicketStatus.closeUnsolved), false, Domain.Enums.MessageUserType.Partecipant, ref NewMessageId); } } Int64 userId = service.UserGetIdfromPerson(UserContext.CurrentUserID); if (Errors != Domain.Enums.TicketMessageSendError.none && Errors != TicketMessageSendError.TicketClosed) { //Begin Action if (Changed) { List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(userId)); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketStatusChanged, CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); } List <KeyValuePair <int, String> > ObjectsMsg = new List <KeyValuePair <int, string> >(); ObjectsMsg.Add(ModuleTicket.KVPgetUser(userId)); ObjectsMsg.Add(ModuleTicket.KVPgetMessage(NewMessageId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.MessageSend, CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, ObjectsMsg); //End Action View.ShowSendError(Errors); } else if (!Changed) { View.ShowChangeStatusError(false); } else { if (Errors == TicketMessageSendError.none) { SendNotification(NewMessageId, userId, ModuleTicket.NotificationActionType.MassageSend); } this.InitView(); View.ShowSendError(Errors); } }
public void InitView() { //Nascondo messaggi. Saranno eventualmente visualizzati in seguito all'InitView o internamente. View.ShowSendError(TicketMessageSendError.none); if (!CheckSessionAccess()) { return; } //int ComId = UserContext.CurrentCommunityID; int PersonId = UserContext.CurrentUserID; if (View.ViewCommunityId != CurrentCommunityId) { View.ViewCommunityId = CurrentCommunityId; } Domain.DTO.DTO_UserModify Data = service.TicketGetUser(View.TicketId); //Repository 4 upload lm.Comol.Core.FileRepository.Domain.ModuleRepository cRepository = service.GetRepositoryPermissions(CurrentCommunityId, PersonId); List <RepositoryAttachmentUploadActions> actions = service.UploadAvailableActionsGet( Data.CurrentUserType, CurrentCommunityId, PersonId, cRepository); //List<iCoreItemFileLink<long>> alreadyLinkedFiles = new List<iCoreItemFileLink<long>>(); //if (Data.DraftMessage != null && Data.DraftMessage.Attachments.Any()) //{ // alreadyLinkedFiles = (from Domain.TicketFile fl in Data.DraftMessage.Attachments // where fl.File != null && fl.Link != null // select new dtoCoreItemFileLink<long>() // { // CreatedBy = fl.CreatedBy, // CreatedOn = fl.CreatedOn, // Deleted = fl.Deleted, // ItemFileLinkId = fl.Id, // StatusId = 0, // Link = fl.Link, // ModifiedBy = fl.ModifiedBy, // ModifiedOn = fl.ModifiedOn, // Owner = fl.CreatedBy, // isVisible = (fl.Deleted == BaseStatusDeleted.None && !fl.File.isDeleted), // File = fl.File // }).ToList<iCoreItemFileLink<long>>(); // // && fl.Visibility == Domain.Enums.FileVisibility.visible // //NO: se non è visibile, non lo è per l'utente, manager e resolver lo possono vedere E comunque non posso linkarlo nuovamente. //} ////if (alreadyLinkedFiles == null) //// alreadyLinkedFiles = new List<iCoreItemFileLink<long>>(); RepositoryAttachmentUploadActions dAction = RepositoryAttachmentUploadActions.none; View.InitView(Data, actions, dAction, cRepository, CurrentCommunityId, (Data.DraftMessage == null ? 0 : Data.DraftMessage.Id)); if (Data.Errors == Domain.Enums.TicketEditUserErrors.none) { //Begin Action List <KeyValuePair <int, String> > Objects = new List <KeyValuePair <int, string> >(); Objects.Add(ModuleTicket.KVPgetUser(service.UserGetIdfromPerson(UserContext.CurrentUserID))); Objects.Add(ModuleTicket.KVPgetTicket(View.TicketId)); View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.TicketLoadEditUser, CurrentCommunityId, ModuleTicket.InteractionType.UserWithLearningObject, Objects); //End Action View.TicketId = Data.TicketId; View.DraftMsgId = (Data.DraftMessage != null) ? Data.DraftMessage.Id : -1; if (Data.BehalfRevoked) { View.ShowBehalfError(BehalfError.permissionRevoked); } else { View.ShowBehalfError(BehalfError.none); } } else { if (Data.Errors == Domain.Enums.TicketEditUserErrors.NoPermission) { View.SendUserActions(service.ModuleID, ModuleTicket.ActionType.NoPermission, CurrentCommunityId, ModuleTicket.InteractionType.None); } View.ShowBehalfError(BehalfError.NoPermission); } //View.ShowInitError(Data.Errors); }