public ActionResult NotificationMessage(NotificationMessage notificationMessage) { if (!notificationMessage.NotificationType.HasValue) { notificationMessage.NotificationType = _notificationMessageService .Find(notificationMessage.NotificationMessageId).NotificationType; } switch ((Enums.MessageType)notificationMessage.NotificationType) { case Enums.MessageType.StandardMessage: UpdateStandardMessageDetails(notificationMessage); notificationMessage.StandardMessageId = notificationMessage.StandardMessage.StandardMessageId; break; case Enums.MessageType.SurveyMessage: UpdateSurveyMessageDetails(notificationMessage); break; case Enums.MessageType.ReviewMessage: UpdateReviewMessageDetails(notificationMessage); break; case Enums.MessageType.RatingMessage: notificationMessage.SurveyMessage = null; notificationMessage.StandardMessage = null; UpdateRatingMessageDetails(notificationMessage); break; case Enums.MessageType.Offer: notificationMessage.SurveyMessage = null; notificationMessage.StandardMessage = null; UpdateOfferMessageDetails(notificationMessage); break; } notificationMessage.SurveyMessage = null; notificationMessage.StandardMessage = null; notificationMessage.ReviewMessage = null; notificationMessage.RatingMessage = null; if (notificationMessage.NotificationMessageId == 0) { _notificationMessageService.Insert(notificationMessage); _unitOfWorkAsync.SaveChanges(); } else { var m = _notificationMessageService.Find(notificationMessage.NotificationMessageId); m.NotificationTitle = notificationMessage.NotificationTitle; m.NotificationType = notificationMessage.NotificationType; m.NotificationDescription = notificationMessage.NotificationDescription; m.MessageThumbImage = notificationMessage.MessageThumbImage; m.ModifiedDate = DateTime.UtcNow; _notificationMessageService.Update(m); _unitOfWorkAsync.SaveChanges(); } JsonResponse response = new JsonResponse(); return(RedirectToAction("Edit", "Notification", new { id = notificationMessage.NotificationId })); }