public void SetTicketVisibility(bool HideToOwner) { View.ShowBehalfError(Domain.Enums.BehalfError.none); if (!CheckSessionAccess()) { 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; } if (!service.TicketVisibilitySet(View.CurrentTicketId, HideToOwner)) { View.ShowBehalfError(Domain.Enums.BehalfError.dBerror); return; //Error: dB } this.InitView(); View.ShowBehalfError(Domain.Enums.BehalfError.visibilitySuccess); }
//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 }
public void InitializeUser(Int64 UserId, bool hideError = true) { if (!CheckComolSession()) { View.DisplaySessionTimeout(0); return; } bool Found = true; if (UserId < 0) { Found = false; } Domain.TicketUser user = service.UserGet(UserId); if (user == null) { Found = false; } if (Found) { if (hideError) { View.ShowError(ViewSettingsUserError.none); } Domain.DTO.DTO_UserSettings settings = new DTO_UserSettings(); settings.isManager = service.UserIsManagerOrResolver(); settings.isBehalfer = service.SettingsPermissionIsBehalfer(UserId); //settings.isNotificationOn = true; settings.isUserNotificationOn = user.IsNotificationActiveUser; settings.isManagerNotificationOn = user.IsNotificationActiveManager; settings.Settings = service.NotificationGetUser(UserId, 0).Settings; Tickets.Domain.SettingsPortal settPortal = service.SettingsGlobalGet(false, 0); settings.isManagerSysNotificationOn = settPortal.IsNotificationUserActive; settings.isUserSysNotificationOn = settPortal.IsNotificationManActive; //settings.Settings. //, true View.Settings = settings; } else { View.ShowError(Domain.Enums.ViewSettingsUserError.usernotfound); } }
//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 }
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); }