public void Receive(MailinData data) { try { var user = usersRepository.Find(w => w.CloudmailinEmail.Equals(data.Envelope.To)); var unitsHelper = new UnitsHelper(); if (user != null) { if (UserHelper.GetUserUsedDiskSpase(user.Id) / 1073741824 < unitsHelper.GetLimitOfDiskSpase(user.Units)) { // AddLog("Second if: "); var lastEmail = emailsRepository.FindAll(e => e.User_Id == user.Id).Last(); // AddLog("lastEmail.Id: " + lastEmail.Id); if (lastEmail != null) { if (lastEmail.Date.Month != DateTime.Now.Month) { user.EmailsParsed = 1; } else if (user.EmailsParsed < unitsHelper.GetLimitOfEmails(user.Units)) { user.EmailsParsed += 1; } else { return; } } else { // AddLog("5"); user.EmailsParsed = 1; } } else { // AddLog("6"); return; } List<Model.AttachmentModels> Attachment = new List<Model.AttachmentModels>(); if (data.Attachments != null) { // AddLog("1"); foreach (var emailAttachments in data.Attachments) { Model.AttachmentModels attachment = new Model.AttachmentModels(); if (emailAttachments.Content != null) { string path = @"D:\home\site\wwwroot\App_Data\UploadTemp\" + emailAttachments.File_Name; System.IO.File.WriteAllBytes(path, emailAttachments.Content); attachment.Name = emailAttachments.File_Name; attachment.Size = emailAttachments.Size; Attachment.Add(attachment); } } // AddLog("2"); } var emailSize = data.Html.Length * 4; emailSize += data.Plain.Length * 4; emailSize += data.Envelope.From.Length * 4; emailSize += data.Headers.Subject.Length * 4; Model.EmailModels Email = new Model.EmailModels { From = HttpUtility.HtmlEncode(data.Envelope.From), Subject = HttpUtility.HtmlEncode(data.Headers.Subject), Date = data.Headers.Date, Content = data.Plain, ContentHtml = data.Html, User_Id = user.Id, EmailSize = emailSize }; try { emailsRepository.Add(Email); emailsRepository.Commit(); } catch(Exception ex) { AddLog("emailsRepository.Commit(): " + ex.Message); } if (Attachment != null && Attachment.Count > 0) { foreach (var attachment in Attachment) { attachment.EmailModels_Id = Email.Id; attachmentsRepository.Add(attachment); } try { attachmentsRepository.Commit(); } catch (Exception ex) { AddLog(" attachmentsRepository.Commit(): " + ex.Message); } } UserHelper.newEmailWasRiceived = true; // AddLog("3"); var brandNewEmailId = emailsRepository.GetBrandNew(w => w.Date.Equals(data.Headers.Date)).Id; // AddLog("4"); ParseHelper.TryToParseEmail(brandNewEmailId, user.Id); } } catch(Exception ex) { AddLog("Receive(): " + ex.Message); } }
partial void DeleteAttachmentModels(AttachmentModels instance);
partial void InsertAttachmentModels(AttachmentModels instance);
partial void UpdateAttachmentModels(AttachmentModels instance);
private void detach_AttachmentModels(AttachmentModels entity) { this.SendPropertyChanging(); entity.EmailModels = null; }