/// <summary> /// Costruttore /// </summary> public DTO_ExtUserAddResult() { User = new DTO_User(); User.UserId = 0; User.PersonId = 0; Errors = Enums.ExternalUserCreateError.none; }
public DTO_AddInit() { IsNew = false; CurrentUser = new DTO_User(); CanModifyUser = false; availableLanguages = new List <DomainModel.Languages.BaseLanguageItem>(); Categories = new List <DTO_CategoryTree>(); //SelectedCategoryId = 0; TicketData = new DTO_Ticket(); CanListUsers = false; }
/// <summary> /// Valida la mail di un utente, in automatico al primo tentativo di accesso /// </summary> /// <param name="Mail">Mail utente</param> /// <param name="Code">Codice utente</param> /// <returns>Eventuali segnalazioni errori</returns> public Domain.DTO.DTO_User UserValidateExternal( String Mail, String Code, String Token, ref Domain.Enums.ExternalUserValidateError Err) { Err = Domain.Enums.ExternalUserValidateError.none; TicketUser User = Manager.GetAll <TicketUser>(u => u.mail == Mail || (u.Person != null && u.Person.Mail == Mail)).Skip(0).Take(1).ToList().FirstOrDefault(); if (User == null || User.Id <= 0) { Err = Domain.Enums.ExternalUserValidateError.invalidMail; return(new Domain.DTO.DTO_User()); } //else if (String.IsNullOrEmpty(User.Code)) //{ // Err = Domain.Enums.ExternalUserValidateError.invalidCode; // return new Domain.DTO.DTO_User(); //} else if (User.Code != AuthenticationHelper.Encrypt(Code)) { Err = Domain.Enums.ExternalUserValidateError.invalidCode; return(new Domain.DTO.DTO_User()); } //Controllo Token if (User.MailChecked == false) { Domain.Enums.TokenValidationResult TokErr = this.TokenValidate(Token, User.Id, Domain.Enums.TokenType.Registration); switch (TokErr) { //case Domain.Enums.TokenValidationResult.UserNotFound case Domain.Enums.TokenValidationResult.TokenNotFound: Err = Domain.Enums.ExternalUserValidateError.TokenEmpty; //return new Domain.DTO.DTO_User(); break; case Domain.Enums.TokenValidationResult.InvalidFormat: Err = Domain.Enums.ExternalUserValidateError.TokenInvalid; //return new Domain.DTO.DTO_User(); break; case Domain.Enums.TokenValidationResult.Exired: Err = Domain.Enums.ExternalUserValidateError.TokenExpired; //return new Domain.DTO.DTO_User(); break; //case Domain.Enums.TokenValidationResult.Validated: } } Boolean IsInternal = (User.Person != null); String LangCode = ""; if (!String.IsNullOrEmpty(User.LanguageCode)) { LangCode = User.LanguageCode; } else if (IsInternal) { Language lang = Manager.Get <Language>(User.Person.LanguageID); if (lang != null) { LangCode = lang.Code; } } else { Language lang = Manager.GetDefaultLanguage(); LangCode = lang.Code; } Domain.DTO.DTO_User Usr = new Domain.DTO.DTO_User { UserId = User.Id, PersonId = (IsInternal) ? User.Person.Id : -1, LanguageCode = LangCode, Mail = (IsInternal) ? User.Person.Mail : User.mail, Name = (IsInternal) ? User.Person.Name : User.Name, SName = (IsInternal) ? User.Person.Surname : User.Sname, IsOwnerNotificationEnable = User.IsNotificationActiveUser }; //UserId = User.Id; return(Usr); }
/// <summary> /// Aggiunge un messeggio DELL'UTENTE al Ticket indicato /// </summary> /// <param name="TicketId">Id Ticket</param> /// <param name="Text">Testo messaggio</param> /// <param name="Preview">Eventuale anteprima</param> /// <param name="ChangeStatus">Indica se dopo l'invio il ticket dovrà modificare il suo stato (riapertura/chiusura)</param> /// <param name="NewStatus">Il nuovo stato (se va modificato)</param> /// <returns>Eventuali errori</returns> public Domain.Enums.TicketMessageSendError MessageSendUserExt( Int64 TicketId, String Text, String Preview, Domain.DTO.DTO_User User, ref Int64 MessageId, Int64 DraftId = -1, Boolean IsDraft = false) { bool ticketIsClose = false; if (String.IsNullOrEmpty(Text) || String.IsNullOrEmpty(Preview)) { return(Domain.Enums.TicketMessageSendError.NoMessage); } Ticket tk = Manager.Get <Ticket>(TicketId); if (tk == null) { return(Domain.Enums.TicketMessageSendError.TicketNotFound); } if (tk.IsDraft) { return(Domain.Enums.TicketMessageSendError.DraftTicket); } if (tk.Owner != null && tk.Owner.Id != User.UserId) { return(Domain.Enums.TicketMessageSendError.NoPermission); } bool IsNew = false; Message msg = (from Message m in tk.Messages where m.IsDraft == true && m.Creator != null && m.Creator.Id == User.UserId select m).FirstOrDefault(); if (msg == null || msg.Id <= 0) { msg = new Message(); IsNew = true; } else { // TEORICAMENTE NON SERVE, MA FORSE MEGLIO METTERCELO!!! if (DraftId != msg.Id) { //UPDATE FILE MESSAGE ID, FROM DraftId To msgId!!! } } if (IsNew) { msg.CreateMetaInfo(CurrentPerson, UC.IpAddress, UC.ProxyIpAddress); } else { msg.UpdateMetaInfo(CurrentPerson, UC.IpAddress, UC.ProxyIpAddress); } msg.Text = Text; msg.Preview = Preview; msg.Creator = this.UserGet(User.UserId); msg.DisplayName = ""; msg.SendDate = DateTime.Now; msg.ShowRealName = true; msg.Ticket = tk; msg.Type = Domain.Enums.MessageType.Request; msg.UserType = Domain.Enums.MessageUserType.Partecipant; msg.Visibility = true; if (tk.Status == TicketStatus.closeSolved || tk.Status == TicketStatus.closeUnsolved) { msg.IsDraft = true; ticketIsClose = true; } else { msg.IsDraft = IsDraft; } msg.Action = Domain.Enums.MessageActionType.normal; msg.ToStatus = tk.Status; Domain.TicketUser usr = (from Assignment asg in tk.Assignemts where asg.AssignedTo != null orderby asg.CreatedOn select asg.AssignedTo).FirstOrDefault(); msg.ToUser = usr; Domain.Category cat = (from Assignment asg in tk.Assignemts where asg.AssignedCategory != null orderby asg.CreatedOn select asg.AssignedCategory).FirstOrDefault(); if (cat == null) { cat = tk.CreationCategory; } msg.ToCategory = cat; if (IsNew) { tk.Messages.Add(msg); } else { Manager.SaveOrUpdate <Message>(msg); } tk.UpdateMetaInfo(CurrentPerson, UC.IpAddress, UC.ProxyIpAddress); if (tk.Owner.Id == this.CurrentUser.Id) { tk.LastUserAccess = DateTime.Now; } else { tk.LastCreatorAccess = DateTime.Now; } Manager.SaveOrUpdate <Ticket>(tk); if (ticketIsClose) { return(TicketMessageSendError.TicketClosed); } return(Domain.Enums.TicketMessageSendError.none); }