コード例 #1
0
        private static void SetAccount(MailUser account)
        {
            MailServerFacade mailSCF = MailServerFacade.GetInstance(account);

            account.Validated = true;
            WebMailClientManager.SetAccount(account);
        }
コード例 #2
0
        protected void ddlManagedAccounts_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList           ddl     = sender as DropDownList;
            decimal                userId  = decimal.Parse(ddl.SelectedValue);
            MailServerConfigFacade mailSCF = MailServerConfigFacade.GetInstance();

            if (userId != -1)
            {
                try
                {
                    MailUser account = mailSCF.GetUserByUserId(userId);
                    SetAccount(account);
                    ddlManagedAccounts.SelectedIndex = 0;
                }
                catch
                {
                    ((BasePage)this.Page).info.AddError("Connessione al mail server impossibile, controllare le credenziali");
                }
            }
            else
            {
                WebMailClientManager.AccountRemove();
            }
            OnStatusChanged();
        }
コード例 #3
0
 protected void Inbox1_OnRowSelected(object sender, InBox.RowSelectedEventArgs e)
 {
     if (!WebMailClientManager.AccountIsValid())
     {
         AccountInvalidated();
     }
     if (!e.UId.IsNullOrWhiteSpace())
     {
         if (!(WebMailClientManager.CurrentMailExist() && e.UId.Trim() == WebMailClientManager.CurrentMailGet().Uid))
         {
             // string folder = e.CurrentFolder.Parse(0);
             //  MailFolder mailFolder = (MailFolder)folder;
             WebMailClientManager.CurrentFolderSet(e.CurrentFolder);
             WebMailClientManager.ParentFolderSet(e.ParentFolder);
             if (e.Dimension < int.Parse(ConfigurationManager.AppSettings["MaxMemoryDimensionForMailViewer"]))
             {
                 MailViewer1.Initialize(e.UId, e.CurrentRating, e.CurrentFolder, e.ParentFolder);
             }
             else
             {
                 Message msg = new Message();
                 MailViewer1.hfUIDMailValue = msg.Uid = e.UId;
                 msg.Size = e.Dimension;
                 WebMailClientManager.CurrentMailSet(msg);
                 MailViewer1.Initialize(e.UId, e.CurrentRating, WebMailClientManager.CurrentFolderGet(), WebMailClientManager.ParentFolderGet());
                 pnlMail.Update();
             }
         }
     }
 }
コード例 #4
0
 protected void lbtnLogOff_Click(object sender, EventArgs e)
 {
     WebMailClientManager.AccountRemove();
     ddlManagedAccounts.SelectedIndex = 0;
     ddlServer.SelectedIndex          = 0;
     OnStatusChanged();
 }
コード例 #5
0
 protected void MailResearch_Mail(RicercaMail.MailSelectedEventArgs e)
 {
     if (!e.UId.IsNullOrWhiteSpace())
     {
         if (!(WebMailClientManager.CurrentMailExist() && e.UId.Trim() == WebMailClientManager.CurrentMailGet().Uid))
         {
             MailServerConfigFacade mailserveconfigfacade = MailServerConfigFacade.GetInstance();
             MailUser account = mailserveconfigfacade.GetUserByUserId(decimal.Parse(e.CurrentAccount));
             account.Validated = true;
             WebMailClientManager.SetAccount(account);
             int idim = 0;
             WebMailClientManager.CurrentFolderSet(e.CurrentFolder);
             WebMailClientManager.ParentFolderSet(e.ParentFolder);
             if (e.Dimension != string.Empty)
             {
                 idim = int.Parse(e.Dimension);
             }
             if (idim < int.Parse(ConfigurationManager.AppSettings["MaxMemoryDimensionForMailViewer"]))
             {
                 MailViewer1.Initialize(e.UId, e.CurrRating, e.CurrentFolder, e.ParentFolder);
                 pnlMail.Update();
             }
             else
             {
                 Message msg = new Message();
                 msg.Uid  = e.UId;
                 msg.Size = idim;
                 WebMailClientManager.CurrentMailSet(msg);
                 MailViewer1.Initialize(e.UId, e.CurrRating, WebMailClientManager.CurrentFolderGet(), WebMailClientManager.ParentFolderGet());
                 pnlMail.Update();
             }
         }
     }
 }
コード例 #6
0
        protected void MailViewer1_OnRequireAction(object sender, MailActionEventArgs e)
        {
            switch (e.Action)
            {
            case MailActions.ACQUIRE:
                throw new NotImplementedException();

            case MailActions.REPLY_ALL:
                throw new NotImplementedException();

            case MailActions.FORWARD:
            case MailActions.REPLY_TO:
            case MailActions.RE_SEND:
                ucSendMail.Visible = true;
                if (WebMailClientManager.AccountIsValid())
                {
                    ucSendMail.LoginVisibile(false);
                }
                ucSendMail.Initialize(e.Action);
                break;

            case MailActions.SEND:
                ucSendMail.Visible = true;
                if (WebMailClientManager.AccountIsValid())
                {
                    ucSendMail.LoginVisibile(false);
                }
                ucSendMail.Initialize(MailActions.SEND, false);
                break;
            }
        }
コード例 #7
0
        /// <summary>
        /// Metodo per il caricamento del messaggio di reply
        /// </summary>
        /// <returns></returns>
        private bool LoadMessageReply()
        {
            ActiveUp.Net.Mail.DeltaExt.MailUser mailUser = WebMailClientManager.getAccount();
            if (mailUser == null)
            {
                onAccountInvalid();
                return(false);
            }
            Message msg = GetCurrentMessage();

            if (msg == null)
            {
                onMessageInvalid();
                return(false);
            }
            msg.To.Clear();
            msg.To.Add(msg.From);
            msg.From    = new Address(mailUser.EmailAddress, mailUser.DisplayName);
            msg.ReplyTo = new Address();
            msg.Bcc.Clear();
            msg.Subject = String.Concat("Re:", msg.Subject);

            ToTextBox.ReadOnly      = true;
            SubjectTextBox.ReadOnly = true;
            return(true);
        }
コード例 #8
0
        /// <summary>
        /// Metodo per il caricamento del messaggio di reply to all
        /// </summary>
        /// <returns></returns>
        private bool LoadMessageReplyAll()
        {
            ActiveUp.Net.Mail.DeltaExt.MailUser mailUser = WebMailClientManager.getAccount();
            if (mailUser == null)
            {
                onAccountInvalid();
                return(false);
            }
            Message msg = GetCurrentMessage();

            if (msg == null)
            {
                onMessageInvalid();
                return(false);
            }
            if (selectEmail(msg.To).Contains(mailUser.EmailAddress))
            {
                msg.To = (AddressCollection)msg.To.Where(x => !x.Email.Equals(mailUser.EmailAddress)).ToList();
            }
            msg.To.Add(msg.From);
            if (selectEmail(msg.Cc).Contains(mailUser.EmailAddress))
            {
                msg.Cc = (AddressCollection)msg.Cc.Where(x => !x.Email.Equals(mailUser.EmailAddress)).ToList();
            }
            msg.Bcc.Clear();
            msg.From    = new Address(mailUser.EmailAddress, mailUser.DisplayName);
            msg.ReplyTo = new Address();
            msg.Subject = String.Concat("Re:", msg.Subject);

            ToTextBox.ReadOnly      = true;
            SubjectTextBox.ReadOnly = true;
            CCTextBox.ReadOnly      = true;
            return(true);
        }
コード例 #9
0
        public HttpResponseMessage AbilitaUsers(string idemail, string itemselector)
        {
            FoldersSendersModel model = new FoldersSendersModel();
            BackendUserService  bus   = new BackendUserService();

            if (string.IsNullOrEmpty(idemail) && string.IsNullOrEmpty(itemselector))
            {
                model.success = "false";
                model.message = "Valori insufficienti nella richiesta";
                this.Request.CreateResponse <FoldersSendersModel>(HttpStatusCode.OK, model);
            }
            try
            {
                // model.FoldersList = listaCartelleNonAbilitate.ToArray();
                string[] users          = itemselector.Split(';');
                var      usersAbilitati = bus.GetDipendentiDipartimentoAbilitati(int.Parse(idemail)).Select(z => z.UserId).ToArray();
                var      ff             = Array.ConvertAll(usersAbilitati, x => x.ToString());
                var      usersda        = users.Except(ff);
                var      usersa         = ff.Except(users);
                foreach (string s in usersda)
                {
                    bus.InsertAbilitazioneEmail(Convert.ToInt32(s), Convert.ToInt32(idemail), 0);
                }
                foreach (string s in usersa)
                {
                    { bus.RemoveAbilitazioneEmail(Convert.ToInt32(s), Convert.ToInt32(idemail)); }
                }
                MailUser m = WebMailClientManager.getAccount();
                if (m != null)
                {
                    WebMailClientManager.AccountRemove();
                    MailServerConfigFacade facade = MailServerConfigFacade.GetInstance();
                    MailUser         account      = facade.GetUserByUserId(m.UserId);
                    MailServerFacade serverFacade = MailServerFacade.GetInstance(account);
                    account.Validated = true;
                    WebMailClientManager.SetAccount(account);
                }
                model.success = "true";
            }
            catch (Exception ex)
            {
                if (!ex.GetType().Equals(typeof(ManagedException)))
                {
                    ManagedException mEx = new ManagedException("Eccezione nellA ABILITAZIONE UTENTI", "ERR_U005", string.Empty, ex.Message, null);
                    ErrorLogInfo     er  = new ErrorLogInfo(mEx);
                    er.objectID = idemail.ToString();
                    log.Error(er);
                    model.success = "false";
                    model.message = mEx.Message;
                }
                else
                {
                    model.success = "false";
                    model.message = ex.Message;
                }
            }
            return(this.Request.CreateResponse <FoldersSendersModel>(HttpStatusCode.OK, model));
        }
コード例 #10
0
ファイル: InBox.ascx.cs プロジェクト: angew74/GestionePEC
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
         if (WebMailClientManager.AccountIsValid())
         {
             BindDataViews(false);
         }
     }
 }
コード例 #11
0
 protected void Page_PreRender(object sender, EventArgs e)
 {
     if (WebMailClientManager.AccountIsValid())
     {
         MailUser m = WebMailClientManager.getAccount();
         Account = m.Casella;
         //if (m.IsPec) Pec = true;
         Json = createJson();
     }
 }
コード例 #12
0
ファイル: NewMail.ascx.cs プロジェクト: angew74/GestionePEC
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
         if (WebMailClientManager.AccountIsValid())
         {
             MailComposer1.Initialize(SendType, this.SottoTitolo);
         }
     }
 }
コード例 #13
0
 private void AccountInvalidated()
 {
     WebMailClientManager.AccountRemove();
     WebMailClientManager.CurrentFolderRemove();
     WebMailClientManager.CurrentMailRemove();
     Inbox1.Initialize();
     pnlLogin.Update();
     pnlMail.Update();
     pnlNav.Update();
     this.info.AddMessage("Account non più valido. Ripetere la selezione della casella di posta", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.INFO);
 }
コード例 #14
0
ファイル: InBox.ascx.cs プロジェクト: angew74/GestionePEC
 protected void Page_PreRender(object sender, EventArgs e)
 {
     if (WebMailClientManager.AccountIsValid())
     {
         MailUser m = WebMailClientManager.getAccount();
         hfCurrentFolder.Value = "1";
         hfPFolder.Value       = "I";
         JsonCartella          = createJsonCartella(m.IsManaged);
         JsonStatus            = createJsonStatus();
     }
 }
コード例 #15
0
ファイル: InBox.ascx.cs プロジェクト: angew74/GestionePEC
        //protected void ucPaging_Init(object sender, EventArgs e)
        //{
        //    this.ucPaging = sender as UCPaging;
        //}

        protected void BindDataViews(bool refresh)
        {
            if (WebMailClientManager.AccountIsValid())
            {
                MailUser user = WebMailClientManager.getAccount();
                this.Visible = true;
            }
            else
            {
                this.Visible = false;
            }
        }
コード例 #16
0
ファイル: InBox.ascx.cs プロジェクト: angew74/GestionePEC
        private string createJsonCartella(bool IsManaged)
        {
            StringBuilder stBuilder = new StringBuilder();
            MailUser      m         = WebMailClientManager.getAccount();
            string        Nom       = string.Empty;

            if (m == null)
            {
                return("[]");
            }
            if (IsManaged)
            {
                List <Folder> Folders = m.Folders;
                stBuilder.Append("[");
                if (Folders != null && Folders.Count > 0)
                {
                    for (int i = 0; i < Folders.Count; i++)
                    {
                        if (i > 0)
                        {
                            stBuilder.Append(",");
                        }
                        switch (Folders[i].TipoFolder)
                        {
                        case "I":
                            Nom = string.Empty;
                            break;

                        case "O":
                            Nom = string.Empty;
                            break;

                        case "E":
                        case "A":
                        case "D":
                            Nom = " Archivio";
                            break;

                        case "C":
                            Nom = " Cestino";
                            break;
                        }
                        stBuilder.Append("['" + Folders[i].Id + "','" + Folders[i].Nome + Nom + "']");
                    }
                    stBuilder.Append("]");
                }
                else
                {
                    return("[]");
                }
            }
            return(stBuilder.ToString());
        }
コード例 #17
0
ファイル: InBox.ascx.cs プロジェクト: angew74/GestionePEC
 public void Initialize()
 {
     if (WebMailClientManager.AccountIsValid())
     {
         this.Visible = true;
         Initialize(false);
     }
     else
     {
         this.Visible = false;
     }
 }
コード例 #18
0
ファイル: InBox.ascx.cs プロジェクト: angew74/GestionePEC
 protected void Initialize(bool refresh)
 {
     if (WebMailClientManager.AccountIsValid())
     {
         this.Visible = WebMailClientManager.AccountIsValid();
         if (this.Visible)
         {
             BindDataViews(true);
         }
     }
     else
     {
         this.Visible = false;
     }
 }
コード例 #19
0
 private void calcVisibility()
 {
     if (WebMailClientManager.AccountIsValid())
     {
         this.CurrentMail = WebMailClientManager.getAccount().Casella;
         IbLogOff.Visible = true;
         panLogin.Visible = false;
     }
     else
     {
         this.CurrentMail       = "Login";
         IbLogOff.Visible       = false;
         panLogin.Visible       = true;
         ManagedAccount.Checked = true;
     }
 }
コード例 #20
0
        /// <summary>
        /// Metodo per il caricamento del messaggio originale
        /// </summary>
        /// <returns></returns>
        private Message GetOriginalMessage()
        {
            Message msg = WebMailClientManager.CurrentMailGet();

            if (msg == null)
            {
                return(null);
            }

            if (!String.IsNullOrEmpty(msg.HeaderFields["x-trasporto"]) &&
                String.Equals(msg.HeaderFields["x-trasporto"], "posta-certificata", StringComparison.InvariantCultureIgnoreCase))
            {
                int id = msg.Id;
                msg    = msg.SubMessages[0];
                msg.Id = id;
            }
            return(msg);
        }
コード例 #21
0
        /// <summary>
        /// Metodo per il caricamento del messaggio di send
        /// </summary>
        /// <returns></returns>
        private bool LoadMessageSend()
        {
            ActiveUp.Net.Mail.DeltaExt.MailUser mailUser = WebMailClientManager.getAccount();
            if (mailUser == null)
            {
                onAccountInvalid();
                return(false);
            }
            Message msg = CreateNewMessage();

            if (msg == null)
            {
                onMessageInvalid();
                return(false);
            }
            msg.From    = new Address(mailUser.EmailAddress, mailUser.DisplayName);
            msg.ReplyTo = new Address();
            return(true);
        }
コード例 #22
0
        protected void mailTreeViewer_MailSelected(object sender, EventArgs e)
        {
            if (!WebMailClientManager.AccountIsValid())
            {
                AccountInvalidated();
            }
            string idMail = MailViewer1.hfIdMailValue;

            if (!idMail.IsNullOrWhiteSpace())
            {
                long id = idMail.Parse(-1);
                if (id == -1)
                {
                    this.info.AddMessage("Impossibile caricare il messaggio", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR);
                }
                else
                {
                    MailViewer1.Initialize();
                }
            }
        }
コード例 #23
0
        protected void Page_Load(object sender, EventArgs e)
        {
            MailUser mailuser = WebMailClientManager.getAccount();

            if (!(WebMailClientManager.AccountIsValid()))
            {
                (this.Page as BasePage).info.AddMessage("Account non più valido. Ripetere la selezione della casella di posta", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.INFO);
            }
            if (Page.IsPostBack)
            {
                string test = HidHtml.Value;
                if (!(string.IsNullOrEmpty(test)))
                {
                    SessionManager <string> .set(SessionKeys.TESTO_MAIL, test);
                }
            }
            else
            {
                SessionManager <string> .del(SessionKeys.TESTO_MAIL);
            }
        }
コード例 #24
0
        /// <summary>
        /// Metodo per il caricamento del messaggio di forward
        /// </summary>
        /// <returns></returns>
        private bool LoadMessageForward()
        {
            ActiveUp.Net.Mail.DeltaExt.MailUser mailUser = WebMailClientManager.getAccount();
            if (mailUser == null)
            {
                onAccountInvalid();
                return(false);
            }
            Message msg = GetCurrentMessage();

            if (msg == null)
            {
                onMessageInvalid();
                return(false);
            }
            msg.From = new Address(mailUser.EmailAddress, mailUser.DisplayName);
            msg.To.Clear();
            msg.Cc.Clear();
            msg.Bcc.Clear();
            msg.Subject = String.Concat("Fw:", msg.Subject);
            return(true);
        }
コード例 #25
0
        private HttpResponseMessage createJsonActions(string folder)
        {
            FoldersResponse folderResponse = new FoldersResponse();
            MailUser        m = WebMailClientManager.getAccount();

            if (m == null)
            {
                folderResponse.message = "Sessione scaduta";
                folderResponse.success = "false";
                return(this.Request.CreateResponse <FoldersResponse>(HttpStatusCode.OK, folderResponse));
            }
            bool managed = m.IsManaged;

            if (managed)
            {
                List <Folder> Folders  = m.Folders;
                int           idfolder = 0;
                int.TryParse(folder, out idfolder);
                if (Folders != null && Folders.Count > 0 && idfolder > 0)
                {
                    var results = (from f in Folders
                                   where f.Id == idfolder
                                   select f.Azioni).ToList();
                    folderResponse.ActionsList = results[0];
                    //List<ActiveUp.Net.Common.DeltaExt.Action> actions =(List<ActiveUp.Net.Common.DeltaExt.Action>) Folders.Where(f => f.TipoFolder.ToUpper() == tipoFolder && f.Id == idfolder).ToList().First().Azioni;
                    //folderResponse.data = new Actions(actions);
                    folderResponse.success = "true";
                    folderResponse.total   = folderResponse.ActionsList.Count;
                }
                else
                {
                    folderResponse.message = "Nessuna azione";
                    folderResponse.success = "false";
                }
            }
            return(this.Request.CreateResponse <FoldersResponse>(HttpStatusCode.OK, folderResponse));
        }
コード例 #26
0
        public HttpResponseMessage GetMails(int start, int limit, string folder, string parFolder, string mailAction, string mailIds, string filter, int page)
        {
            IEnumerable <Carrier> listCarrier = new List <Carrier>();
            CarrierModel          model       = new CarrierModel();
            int mailAct = 0;

            start++;
            if (mailAction.ToString() != "NaN")
            {
                mailAct = int.Parse(mailAction);
            }
            string   message = null;
            MailUser acc     = WebMailClientManager.getAccount();

            if (string.IsNullOrEmpty(mailIds))
            {
                mailIds = string.Empty;
            }
            message = DoAction(folder, parFolder, mailAct, mailIds, message, acc);
            ResultList <MailHeader> m = new ResultList <MailHeader>(start, limit, new List <MailHeader>(), 0);

            // IEnumerable<string> items = null;
            if (acc != null && acc.IsManaged && !String.IsNullOrEmpty(filter))
            {
                DataContractJsonSerializer s  = new DataContractJsonSerializer(typeof(Filter));
                System.IO.MemoryStream     ms = new System.IO.MemoryStream();
                byte[] res = new byte[filter.Length];
                Encoding.UTF8.GetBytes(filter, 0, filter.Length, res, 0);
                ms.Write(res, 0, res.Length);
                ms.Seek(0, System.IO.SeekOrigin.Begin);
                Filter filtro = (Filter)s.ReadObject(ms);

                Dictionary <MailIndexedSearch, List <string> > sValues = new Dictionary <MailIndexedSearch, List <string> >();
                if (filtro.text.tipo != MailIndexedSearch.UNKNOWN &&
                    (filtro.text.values != null && filtro.text.values.Length > 0))
                {
                    sValues.Add(filtro.text.tipo, filtro.text.values.ToList());
                }
                if (filtro.status.tipo != MailIndexedSearch.UNKNOWN &&
                    (filtro.status.values != null && filtro.status.values.Length > 0))
                {
                    sValues.Add(filtro.status.tipo, filtro.status.values.Select(e => ((int)e).ToString()).ToList());
                }
                MailLocalService mailService       = new MailLocalService();
                ResultList <MailHeaderExtended> rl = mailService.GetMailsByParams(acc.EmailAddress, folder, parFolder, sValues, start, limit);

                m.Per    = rl.Per;
                m.List   = (rl.List == null) ? null : rl.List.Cast <MailHeader>().ToList() as ICollection <MailHeader>;
                m.Totale = rl.Totale;
            }
            else
            {
                MailServerFacade mailServerFacade = MailServerFacade.GetInstance(acc);
                m = mailServerFacade.MailHeader_ResultList_Fetch(folder, parFolder, start, limit);
            }

            if (m != null && m.List != null)
            {
                CultureInfo ci = CultureInfo.InvariantCulture;
                System.Runtime.Serialization.Json.DataContractJsonSerializer ser =
                    new DataContractJsonSerializer(typeof(Carrier));
                if (acc.IsManaged)
                {
                    listCarrier = m.List.Cast <MailHeaderExtended>().Select(h =>
                    {
                        string mStatus      = "";
                        string destinatario = "";
                        switch (parFolder)
                        {
                        case "I":
                            mStatus      = h.MailRating.ToString();
                            destinatario = h.From;
                            break;

                        case "O":
                        case "AO":
                            mStatus = ((int)h.MailStatus).ToString();
                            //per gestire il semaforo per gli invii da server non PEC
                            if (!acc.IsPec && h.MailStatus == MailStatus.SENT)
                            {
                                mStatus = ((int)MailStatus.AVVENUTA_CONSEGNA).ToString();
                            }
                            destinatario = h.To;
                            break;

                        default:
                            MailUser muser = WebMailClientManager.getAccount();
                            string idnome  = (from f in muser.Folders
                                              where f.Id.ToString() == folder
                                              select f.IdNome).First();
                            string tipo = (from f in muser.Folders
                                           where f.Id.ToString() == folder
                                           select f.TipoFolder).First();
                            switch (idnome)
                            {
                            case "1":
                            case "3":
                                mStatus      = h.MailRating.ToString();
                                destinatario = h.From;
                                break;

                            case "2":
                                mStatus = ((int)h.MailStatus).ToString();
                                //per gestire il semaforo per gli invii da server non PEC
                                if (!acc.IsPec && h.MailStatus == MailStatus.SENT)
                                {
                                    mStatus = ((int)MailStatus.AVVENUTA_CONSEGNA).ToString();
                                }
                                destinatario = h.To;
                                break;

                            default:
                                switch (tipo)
                                {
                                case "E":
                                    mStatus      = h.MailRating.ToString();
                                    destinatario = h.From;
                                    break;

                                case "D":
                                    mStatus = ((int)h.MailStatus).ToString();
                                    //per gestire il semaforo per gli invii da server non PEC
                                    if (!acc.IsPec && h.MailStatus == MailStatus.SENT)
                                    {
                                        mStatus = ((int)MailStatus.AVVENUTA_CONSEGNA).ToString();
                                    }
                                    destinatario = h.To;
                                    break;
                                }
                                break;
                            }
                            break;
                        }

                        ActiveUp.Net.Mail.Address add = ActiveUp.Net.Mail.Parser.ParseAddress(destinatario);
                        if (String.IsNullOrEmpty(add.Name))
                        {
                            destinatario = add.Email;
                        }
                        else
                        {
                            destinatario = System.Text.RegularExpressions.Regex.Replace(add.Name,
                                                                                        "Per conto di:?", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase).Trim();
                            if (destinatario.EndsWith("\""))
                            {
                                destinatario.Replace("\"", "");
                            }
                        }

                        Carrier c = new Carrier
                        {
                            id      = h.UniqueId,
                            from    = destinatario.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace("\"", "\\\""),
                            date    = h.Date.ToString("dd/MM/yyyy HH:mm:ss", ci),
                            subject = h.Subject.Replace("\"", "\\\""),
                            sStatus = mStatus,
                            mStatus = ((int)h.MailStatus).ToString(),
                            attach  = Convert.ToInt16(h.HasAttachments).ToString(),
                            utente  = ((h.MailStatus == MailStatus.SCARICATA) ? "" : h.Utente),
                            dimen   = h.Dimensione
                        };
                        return(c);
                        //System.IO.MemoryStream ms = new System.IO.MemoryStream();
                        //ser.WriteObject(ms, c);
                        //string jsonString = Encoding.UTF8.GetString(ms.ToArray());
                        //ms.Close();
                        //return jsonString;
                    });
                }
                else
                {
                    listCarrier = m.List.Select(h =>
                    {
                        Carrier c = new Carrier()
                        {
                            id      = h.UniqueId,
                            from    = h.From.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace("\"", "\\\""),
                            date    = h.Date.ToString("dd/MM/yyyy HH:mm:ss", ci),
                            subject = h.Subject.Replace("\"", "\\\""),
                            mStatus = ((int)MailStatus.UNKNOWN).ToString(),
                            sStatus = "",
                            attach  = ""
                        };
                        return(c);
                        //System.IO.MemoryStream ms = new System.IO.MemoryStream();
                        //ser.WriteObject(ms, c);
                        //string jsonString = Encoding.UTF8.GetString(ms.ToArray());
                        //ms.Close();
                        //return jsonString;
                    });
                }
            }
            else
            {
                model.Message = "Nessun ritrovamento";
                return(this.Request.CreateResponse <CarrierModel>(HttpStatusCode.OK, model));
                //message = "Nessun ritrovamento";
            }

            //StringBuilder sb = new StringBuilder();
            //sb.Append("{\"TotalCount\":\"" + m.Totale.ToString() + "\",");
            //sb.Append("\"Message\":\"" + message + "\"");
            //if (items != null)
            //{
            //    sb.Append(",\"Data\":[" + String.Join(",", items.ToArray()) + "]");
            //}
            //else
            //{
            //    sb.Append(",\"Data\": []");
            //}
            //sb.Append("}");
            model.TotalCount = m.Totale.ToString();
            model.data       = listCarrier.ToList();
            model.success    = "true";
            return(this.Request.CreateResponse <CarrierModel>(HttpStatusCode.OK, model));
            //context.Response.ContentType = "application/json";
            //context.Response.AppendHeader("Content-type", "text/json");
            //context.Response.Write(sb.ToString());
        }
コード例 #27
0
        public HttpResponseMessage GetTreeStructure(string idM)
        {
            JSONTreeNodeModel model = new JSONTreeNodeModel();

            if (string.IsNullOrEmpty(idM))
            {
                ManagedException mEx = new ManagedException("Il parametro idNode è nullo", "ERR_G005", string.Empty, string.Empty, null);
                ErrorLogInfo     er  = new ErrorLogInfo(mEx);
                er.objectID = idM;
                log.Error(er);
                model.success = "false";
                model.Message = mEx.Message;
                return(this.Request.CreateResponse <JSONTreeNodeModel>(HttpStatusCode.OK, model));
            }
            long idMail = -1;

            if (!long.TryParse(idM, out idMail))
            {
                ManagedException mEx = new ManagedException("Il parametro idNode non è numerico", "ERR_G006", string.Empty, string.Empty, null);
                ErrorLogInfo     er  = new ErrorLogInfo(mEx);
                er.objectID = idM;
                log.Error(er);
                model.success = "false";
                model.Message = mEx.Message;
                return(this.Request.CreateResponse <JSONTreeNodeModel>(HttpStatusCode.OK, model));
            }

            MailUser us = WebMailClientManager.getAccount();

            if (us == null)
            {
                ManagedException mEx = new ManagedException("Non esiste un account loggato", "ERR_G007", string.Empty, string.Empty, null);
                ErrorLogInfo     er  = new ErrorLogInfo(mEx);
                er.objectID = idM;
                log.Error(er);
                model.success = "false";
                model.Message = mEx.Message;
                return(this.Request.CreateResponse <JSONTreeNodeModel>(HttpStatusCode.OK, model));
            }

            MailLocalService mailService = new MailLocalService();
            IEnumerable <HierarchyNode <SimpleTreeItem> > hl = null;
            List <SimpleTreeItem> result = mailService.LoadMailTree(us.EmailAddress, idMail) as List <SimpleTreeItem>;

            if (result.Count > 0)
            {
                Func <List <SimpleTreeItem>, SimpleTreeItem> getRoot = l => l.FirstOrDefault(x => !l.Select(y => y.Value).Contains(x.Padre));
                hl = result.AsHierarchy(
                    e => e.Value,
                    e => e.Padre,
                    e => e.Value,
                    getRoot(result).Value);
            }
            JSONTreeNode[] nodes = ConvertToJSON(hl);
            model.success    = "true";
            model.data       = nodes.ToList();
            model.TotalCount = model.data.Count.ToString();
            return(this.Request.CreateResponse <JSONTreeNodeModel>(HttpStatusCode.OK, model));
            //DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(JSONTreeNode[]));
            //System.IO.MemoryStream ms = new System.IO.MemoryStream();
            //ser.WriteObject(ms, nodes);
            //string json = Encoding.UTF8.GetString(ms.ToArray());
            //ms.Close();

            //context.Response.ContentType = "application/json";
            //context.Response.AddHeader("Content-Type", "text/json");
            //context.Response.Write(json);
        }
コード例 #28
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void ucSendMail_MessageInvalid(object sender, EventArgs e)
 {
     WebMailClientManager.CurrentMailRemove();
     MailViewer1.Initialize();
     (this.Page as BasePage).info.AddMessage("Mail non disponibile. Ripetere la scelta", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.INFO);
 }
コード例 #29
0
 protected void MailResearch_Hide(object sender, EventArgs e)
 {
     WebMailClientManager.CurrentMailRemove();
     MailViewer1.Initialize(null, null, null, null);
     pnlMail.Update();
 }
コード例 #30
0
        public void ProcessRequest(HttpContext context)
        {
            bool response = false;

            string idMail  = context.Request["idMail"];
            string account = context.Request["account"];
            int    rating  = -1;

            if (!String.IsNullOrEmpty(idMail) && !String.IsNullOrEmpty(account))
            {
                int risp = 0;
                if (int.TryParse(context.Request["rating"], out rating) &&
                    (rating >= 0 && rating <= 4))
                {
                    try
                    {
                        MailServerFacade mailserverFacade = MailServerFacade.GetInstance((WebMailClientManager.getAccount()));
                        risp = mailserverFacade.AssignMessageRating(idMail, rating);
                    }
                    catch (Exception e)
                    {
                        //TASK: Allineamento log - Ciro
                        if (e.GetType() != typeof(ManagedException))
                        {
                            ManagedException mEx = new ManagedException("Detagli errore: " + e.Message, "ERR_RAT", "", "", e);
                            ErrorLogInfo     err = new ErrorLogInfo(mEx);
                            err.objectID = idMail;
                            _log.Error(err);
                        }
                        //ErrorLog err = new ErrorLog("ERR_RAT", e, "", "", "");
                        //_log.Error(err);
                    }
                }

                if (risp == 1)
                {
                    response = true;
                }
            }

            context.Response.ContentType = "text/plain";
            context.Response.Write(response.ToString().ToLower());
        }