Beispiel #1
0
        internal bool GetByDate(System.DateTime date, out MailCollection mails)
        {
            mails = null;
            bool res = false;

            try
            {
                mails = new MailCollection();
                _query.Parameters.Clear();
                _query.Parameters.Add(new SqlParameter("@SendTime", Utils.GetDbTime(date)));

                res = _query.ExecuteReader("MailsGetByDate", MapMailToObject, mails);
            }
            catch (Exception ex)
            {
                try
                {
                    DomainModel.Application.Status.Update(
                        StatusController.Abstract.StatusTypes.Error,
                        "",
                        ex.Message);
                }
                catch (Exception)
                { }
            }

            return(res);
        }
Beispiel #2
0
        public ActionResult GetMailsByDate(Int64 initial, Int64 final, Int64 mailAccountId = 0)
        {
            DateTime initialDate = AsyncMailsController.ConvertFromJS(initial);
            DateTime finalDate   = AsyncMailsController.ConvertFromJS(final);

            ISession session = NHibernateManager.OpenSession();

            try
            {
                MailCollection accountMails;
                List <Object>  mailsToReturn = new List <object>();
                User           currentUser   = (User)Session[AccountController.USER_NAME];
                foreach (MailAccount mailAccount in currentUser.GetAccounts())
                {
                    accountMails = new MailCollection(mailAccount.GetMailsByDate(initialDate, finalDate, session));
                    mailsToReturn.AddRange(this.PrepareHomeMails(accountMails));
                }

                JsonResult result = Json(new { success = true, mails = mailsToReturn }, JsonRequestBehavior.AllowGet);
                return(result);
            }
            catch (Exception exc)
            {
                Log.LogException(exc, "Fechas del metodo: initialDate(" + initialDate.ToString() + "), finalDate(" + finalDate.ToString() + ").");
                return(Json(new { success = false, message = "Error al obtener los mails." }, JsonRequestBehavior.AllowGet));
            }
            finally
            {
                session.Close();
            }
        }
        /*
         * public void SetDataSource(Entities.MailCollection mails)
         * {
         *  if (_datasource != null)
         *  {
         *      _datasource.ListChanged -= DatasourceListChanged;
         *  }
         *
         *  _datasource = mails;
         *  if (_datasource != null)
         *  {
         *      _datasource.ListChanged += DatasourceListChanged;
         *  }
         *
         *  SetObjects(mails);
         * }*/


        void DatasourceListChanged(object sender, ListChangedEventArgs e)
        {
            if (IsDisposed || Disposing)
            {
                return;
            }

            try
            {
                if (_bindingSource != null && _bindingSource.DataSource != null)
                {
                    MailCollection mails = (MailCollection)_bindingSource.DataSource;
                    if (mails.Count > 0)
                    {
                        SetObjects(mails);
                        SelectObject(mails[0]);
                        Focus();

                        return;
                    }
                }

                SetObjects(null);
            }
            catch (Exception)
            { }
        }
Beispiel #4
0
        private static void Sync(MailCollection mails, MailCollection newMails)
        {
            MailCollection remove = new MailCollection();

            foreach (Mail mail in mails)
            {
                if (!newMails.Contains(mail))
                {
                    remove.Add(mail);
                }
            }

            foreach (Mail mail in remove)
            {
                mails.Remove(mail);
            }

            foreach (Mail mail in newMails)
            {
                if (!mails.Contains(mail))
                {
                    mails.Add(mail);
                }
            }
        }
Beispiel #5
0
        private void MapMailToObject(SqlDataReader reader, object userData)
        {
            MailCollection mails = (MailCollection)userData;
            Mail           mail  = new Mail();

            mail.Id    = Utils.GetSafeInt32(reader, "MailId");
            mail.Title = Utils.GetSafeString(reader, "MailTitle");
            mail.Text  = Utils.GetSafeString(reader, "MailText");

            //mail.IsDirty = false;

            mails.Add(mail);
        }
Beispiel #6
0
        public override MailCollection GetEmails(int emailsCount)
        {
            MailCollection emails = new MailCollection();

            using (SqlConnection connection = new SqlConnection(this._connectionString))
            {
                SqlCommand command = new SqlCommand("gopi_GetEmails", connection);
                command.CommandType = CommandType.StoredProcedure;

                command.Parameters.AddWithValue("Count", emailsCount);

                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(SerializableMailMessage));
                    while (reader.Read())
                    {
                        SerializableMailMessage email = new SerializableMailMessage();

                        string stringData = (string)reader["EmailData"];
                        MemoryStream memoryStream = new MemoryStream();
                        byte[] data = Encoding.Unicode.GetBytes(stringData);
                        Encoding.Convert(Encoding.Default, Encoding.UTF8, data);
                        memoryStream.Write(data, 0, data.Length);

                        memoryStream.Position = 0;

                        email = (SerializableMailMessage)serializer.Deserialize(memoryStream);

                        email.ID = new Guid(reader["ID"].ToString());
                        email.DateAdded = (DateTime)reader["DateAdded"];

                        emails.Add(email);
                    }
                }

                connection.Close();
                command.Dispose();
            }

            return emails;
        }
Beispiel #7
0
        public FrmMailBox()
        {
            InitializeComponent();

            //this.tlpMain.BackColor = this.BackColor;
            tlpMain.Controls.Add(new WorkbenchViewButton(), 1, 0);

            tabMain.ImageList = new ImageList();
            tabMain.ImageList.Images.Add(DomainModel.Application.ResourceManager.GetImage("mail"));
            tabMain.ImageList.Images.Add(DomainModel.Application.ResourceManager.GetImage("mails_stack"));

            tbpToday.ImageIndex = 0;
            tbpAll.ImageIndex   = 1;

            _todayMails = new MailCollection();
            this.mbxToday.DataSource = _todayMails;

            // UNDONE: Do this in a thread
            DomainModel.Mails.LoadByDate(DateTime.Now, _todayMails);
        }
Beispiel #8
0
        public static void LoadByDate(DateTime date, MailCollection mails)
        {
            try
            {
                MailCollection newMails;
                _mailsRepo.GetByDate(date, out newMails);

                Sync(mails, newMails);
            }
            catch (Exception ex)
            {
                try
                {
                    DomainModel.Application.Status.Update(
                        StatusController.Abstract.StatusTypes.Error,
                        "",
                        ex.Message);
                }
                catch (Exception)
                { }
            }
        }
Beispiel #9
0
        private List <Object> PrepareHomeMails(MailCollection mails)
        {
            List <Object> preparedMails = new List <Object>();

            foreach (MailEntity mail in mails)
            {
                DateTime      mailDate      = DateTimeHelper.ChangeToUtc(mail.Date);
                Double        currentAge    = DateTimeHelper.GetAgeInSeconds(mailDate);
                List <Object> currentLabels = PrepareLabels(mail.Labels);
                Object        anEmail       = new
                {
                    id      = mail.Id,
                    subject = mail.Subject,
                    date    = mailDate,
                    age     = currentAge,
                    from    = new
                    {
                        address = mail.From.MailAddress,
                        name    = mail.From.Name
                    },

                    to              = mail.ToAddress,
                    cc              = mail.CC,
                    bcc             = mail.BCC,
                    bodypeek        = mail.BodyPeek,
                    tid             = mail.Gm_tid,
                    seen            = mail.Seen,
                    flagged         = mail.Flagged,
                    labels          = currentLabels,
                    importance      = mail.Importance,
                    mailaccount     = mail.MailAccountEntity.Id,
                    has_attachments = mail.HasExtras
                };

                preparedMails.Add(anEmail);
            }
            return(preparedMails);
        }