private async Task <string> BuildMessage(AuditTableKafkaMessage <AuditCrm> crm) { string message = string.Empty; switch (crm.LogType) { case LogTypeEnum.INSERT: message = await BuildMessageForInsert(crm); break; case LogTypeEnum.UPDATE: message = await BuildMessageForUpdate(crm); break; case LogTypeEnum.CHANGE_STATUS: case LogTypeEnum.COMMENT: message = await BuildMessageForComment(crm); break; } return(message); }
private async Task <string> BuildMessageForComment(AuditTableKafkaMessage <AuditCrm> crm) { StringBuilder builder = new StringBuilder(); if (!string.IsNullOrEmpty(crm.Comment)) { builder.Append($"{crm.Comment} <br/>"); } if (crm.Attachments.Any()) { builder.Append("Đã đính kèm file. <br/>"); } return(await Task.FromResult(builder.ToString())); }
public static AuditTableKafkaMessage <T1> Convert <T1, T>(this AuditTableKafkaMessage <T> source) where T1 : class { var result = new AuditTableKafkaMessage <T1> { Table = source.Table, LogType = source.LogType, Id = source.Id, OldValue = source.OldValue as T1, Value = source.Value as T1, Comment = source.Comment, Attachments = source.Attachments }; return(result); }
public async Task <TResponse <bool> > Log(AuditTableKafkaMessage <AuditCrm> crm) { try { string title = string.Empty; switch (crm.LogType) { case LogTypeEnum.INSERT: title = "đã thêm mới Cơ hội bán hàng"; break; case LogTypeEnum.UPDATE: title = "đã cập nhật cơ hội bán hàng"; break; case LogTypeEnum.CHANGE_STATUS: title = "đã thay đổi trạng thái"; break; case LogTypeEnum.COMMENT: title = "đã bình luận"; break; } string message = await BuildMessage(crm); var result = await WriteRepository.ExecuteScalarAsync <int>(SqlQuery.INSERT_LOG, new { TableName = "Crm", ObjectId = crm.Id, Title = title, Message = message, crm.UserId, LogDate = DateTime.Now, OldStatusId = crm.OldValue.CrmStatusId, StatusId = crm.Value.CrmStatusId }); if (result.IsSuccess) { if (result.Data > 0) { if (crm.Attachments.Any()) { foreach (var crmAttachment in crm.Attachments) { await WriteRepository.ExecuteAsync(SqlQuery.INSERT_LOG_ATTACHMENTS, new { TableLogId = result.Data, Attachment = crmAttachment.Key, AttachmentName = crmAttachment.Value }); } } Logger.Info($"Insert log CRM: {title} - {message}"); return(await Ok(true)); } return(await Fail <bool>($"Can not insert log: {crm.ToJson()}")); } return(await Fail <bool>(result.Message)); } catch (Exception exception) { return(await Fail <bool>(exception)); } }
private async Task <string> BuildMessageForUpdate(AuditTableKafkaMessage <AuditCrm> crm) { StringBuilder builder = new StringBuilder(); #region Need if (string.IsNullOrEmpty(crm.OldValue.Need) && !string.IsNullOrEmpty(crm.Value.Need)) { builder.Append($"Đã thêm mới nhu cầu: <b>{crm.Value.Need}</b>. <br/>"); } else if (!string.IsNullOrEmpty(crm.OldValue.Need) && string.IsNullOrEmpty(crm.Value.Need)) { builder.Append($"Đã xóa bỏ nhu cầu: <b>{crm.OldValue.Need}</b>. <br/>"); } else if (!string.Equals(crm.OldValue.Need, crm.Value.Need, StringComparison.CurrentCultureIgnoreCase)) { builder.Append($"Đã cập nhật nhu cầu từ <b>{crm.OldValue.Need}</b> sang <b>{crm.Value.Need}</b>. <br/>"); } #endregion #region Description if (string.IsNullOrEmpty(crm.OldValue.Description) && !string.IsNullOrEmpty(crm.Value.Description)) { builder.Append($"Đã thêm mới ghi chú: <b>{crm.Value.Description}</b>. <br/>"); } else if (!string.IsNullOrEmpty(crm.OldValue.Description) && string.IsNullOrEmpty(crm.Value.Description)) { builder.Append($"Đã xóa bỏ ghi chú: <b>{crm.OldValue.Description}</b>. <br/>"); } else if (!string.Equals(crm.OldValue.Description, crm.Value.Description, StringComparison.CurrentCultureIgnoreCase)) { builder.Append($"Đã cập nhật ghi chú từ <b>{crm.OldValue.Description}</b> sang <b>{crm.Value.Description}</b>. <br/>"); } #endregion #region ContactDate if (crm.OldValue.ContactDate != crm.Value.ContactDate) { builder.Append($"Đã thay đổi ngày liên hệ từ <b>{crm.OldValue.ContactDate:dd-MM-yyyy hh:mm}</b> sang <b>{crm.Value.ContactDate: dd-MM-yyyy hh:mm}</b>. <br/>"); } #endregion #region CrmPriorityId if (crm.OldValue.CrmPriorityId != crm.Value.CrmPriorityId) { var oldCrmPriority = await _crmPriorityCacheService.GetById(crm.OldValue.CrmPriorityId); var crmPriority = await _crmPriorityCacheService.GetById(crm.Value.CrmPriorityId); if (oldCrmPriority != null && crmPriority != null) { builder.Append($"Đã thay đổi mức độ khẩn cấp từ <b>{oldCrmPriority.Name}</b> sang <b>{crmPriority.Name}</b>. <br/>"); } } #endregion #region CustomerSourceId if (crm.OldValue.CustomerSourceId != crm.Value.CustomerSourceId) { var oldCustomerSource = await _customerSourceCacheService.GetById(crm.OldValue.CustomerSourceId); var customerSource = await _customerSourceCacheService.GetById(crm.Value.CustomerSourceId); if (oldCustomerSource != null && customerSource != null) { builder.Append($"Đã thay đổi nguồn khách hàng từ <b>{oldCustomerSource.Name}</b> sang <b>{customerSource.Name}</b>. <br/>"); } } #endregion #region CrmTypeId if (crm.OldValue.CrmTypeId != crm.Value.CrmTypeId) { var oldCrmType = await _crmTypeCacheService.GetById(crm.OldValue.CrmTypeId); var crmType = await _crmTypeCacheService.GetById(crm.Value.CrmTypeId); if (oldCrmType != null && crmType != null) { builder.Append($"Đã thay đổi kiểu chốt từ <b>{oldCrmType.Name}</b> sang <b>{crmType.Name}</b>. <br/>"); } } #endregion #region ProductGroupId if (crm.OldValue.ProductGroupId != crm.Value.ProductGroupId) { var oldProductGroup = await _productGroupCacheService.GetById(crm.OldValue.ProductGroupId); var productGroup = await _productGroupCacheService.GetById(crm.Value.ProductGroupId); if (oldProductGroup != null && productGroup != null) { builder.Append($"Đã thay đổi nhóm sản phẩm từ <b>{oldProductGroup.Name}</b> sang <b>{productGroup.Name}</b>. <br/>"); } } #endregion #region Visit if (crm.OldValue.Visit != crm.Value.Visit) { if (crm.OldValue.Visit == 0) { builder.Append("Đã thay đổi đến cửa hàng từ <b>Chưa đến</b> sang <b>Đã đến</b>. <br/>"); } else { builder.Append("Đã thay đổi đến cửa hàng từ <b>Đã đến</b> sang <b>Chưa đến</b>. <br/>"); } } #endregion #region UserIds var addUserIds = crm.Value.UserIds.Where(c => !crm.OldValue.UserIds.Contains(c)) .ToList(); var removeUserIds = crm.OldValue.UserIds.Where(c => !crm.Value.UserIds.Contains(c)) .ToList(); if (addUserIds.Any()) { foreach (var addUserId in addUserIds) { var addUser = await _userCacheService.GetById(addUserId); if (addUser != null) { builder.Append($"Đã thêm <b>{addUser.DisplayName}</b> làm người phụ trách. <br/>"); } } } if (removeUserIds.Any()) { foreach (var removeUserId in removeUserIds) { var removeUser = await _userCacheService.GetById(removeUserId); if (removeUser != null) { builder.Append($"Đã xóa <b>{removeUser.DisplayName}</b> khỏi danh sách người phụ trách. <br/>"); } } } #endregion return(builder.ToString()); }
private async Task <string> BuildMessageForInsert(AuditTableKafkaMessage <AuditCrm> crm) { return(await Task.FromResult(string.Empty)); }