public RelationshipEvent CreateItem(RelationshipEvent item) { _crmSecurity.DemandCreateOrUpdate(item); var htmlBody = String.Empty; if (item.CreateOn == DateTime.MinValue) { item.CreateOn = _tenantUtil.DateTimeNow(); } item.CreateBy = _securityContext.CurrentAccount.ID; item.LastModifedBy = _securityContext.CurrentAccount.ID; if (item.CategoryID == (int)HistoryCategorySystem.MailMessage) { // var jsonObj = JsonDocument.Parse(item.Content).RootElement; // var messageId = jsonObj.GetProperty("message_id").GetInt32(); //var apiServer = new ApiServer(); //var msg = apiServer.GetApiResponse( // String.Format("{0}mail/messages/{1}.json?id={1}&loadImages=true&needSanitize=true", SetupInfo.WebApiBaseUrl, messageId), "GET"); // String msg = null; // if (msg == null) throw new ArgumentException("Mail message cannot be found"); //var msgResponseDto = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(msg))); //var msgRequestObj = msgResponseDto.Value<JObject>("response"); //string messageUrl; //htmlBody = msgRequestObj.Value<String>("htmlBody"); //using (var fileStream = new MemoryStream(Encoding.UTF8.GetBytes(htmlBody))) //{ // var filePath = String.Format("folder_{0}/message_{1}.html", (messageId / 1000 + 1) * 1000, messageId); // Global.GetStore().Save("mail_messages", filePath, fileStream); // messageUrl = String.Format("{0}HttpHandlers/filehandler.ashx?action=mailmessage&message_id={1}", PathProvider.BaseAbsolutePath, messageId).ToLower(); //} //var msg_date_created = msgRequestObj.Value<String>("date"); //var message_id = msgRequestObj.Value<Int32>("id"); //item.Content = JsonConvert.SerializeObject(new //{ // @from = msgRequestObj.Value<String>("from"), // to = msgRequestObj.Value<String>("to"), // cc = msgRequestObj.Value<String>("cc"), // bcc = msgRequestObj.Value<String>("bcc"), // subject = msgRequestObj.Value<String>("subject"), // important = msgRequestObj.Value<Boolean>("important"), // chain_id = msgRequestObj.Value<String>("chainId"), // is_sended = msgRequestObj.Value<Int32>("folder") != 1, // date_created = msg_date_created, // introduction = msgRequestObj.Value<String>("introduction"), // message_id = message_id, // message_url = messageUrl //}); //item.CreateOn = DateTime.Parse(msg_date_created, CultureInfo.InvariantCulture); //var sqlQueryFindMailsAlready = Query(CRMDbContext.RelationshipEvent) // .Where(x => x.ContactId == item.ContactID) // .Where(x => x.EntityType == item.EntityType) // .Where(x => x.EntityId == item.EntityID) // .Where(x => x.CategoryId == item.CategoryID) // .Where(x => Microsoft.EntityFrameworkCore.EF.Functions.Like(x.Content, String.Format("\"message_id\":{0},", message_id))); //if (sqlQueryFindMailsAlready.Count() > 0) // throw new Exception("Already exists"); } var itemToInsert = new DbRelationshipEvent { ContactId = item.ContactID, Content = item.Content, CreateOn = _tenantUtil.DateTimeToUtc(item.CreateOn), CreateBy = item.CreateBy, EntityType = item.EntityType, EntityId = item.EntityID, CategoryId = item.CategoryID, LastModifedOn = DateTime.UtcNow, LastModifedBy = item.LastModifedBy, TenantId = TenantID, HaveFiles = false }; CrmDbContext.RelationshipEvent.Add(itemToInsert); CrmDbContext.SaveChanges(); item.ID = itemToInsert.Id; if (item.CreateOn.Kind == DateTimeKind.Utc) { item.CreateOn = _tenantUtil.DateTimeFromUtc(item.CreateOn); } _factoryIndexer.Index(itemToInsert); return(item); }