public async Task <IActionResult> Post([FromBody] ReportSettingApi item) { if (!ModelState.IsValidUpdated()) { return(new BadRequestObjectResult(ModelState)); } var dbReferenceType = 0; if (SettingApi.ReferenceTypes.Group.Equals(item.ReferenceType, StringComparison.InvariantCultureIgnoreCase)) { dbReferenceType = 10; } else if (SettingApi.ReferenceTypes.Task.Equals(item.ReferenceType, StringComparison.InvariantCultureIgnoreCase)) { dbReferenceType = 20; } else { ModelState.AddModelError("item.ReferenceType", "Invalid Report Settings Reference Type."); return(new BadRequestObjectResult(ModelState)); } var reportSetting = await DbContext.ReportSettings.Where(s => s.PartitionId == CurrentPartitionId && s.ReferenceType == dbReferenceType && s.ReferenceKey == item.ReferenceKey).FirstOrDefaultAsync(); if (reportSetting == null) { reportSetting = new ReportSetting { PartitionId = CurrentPartitionId, ReferenceType = dbReferenceType, ReferenceKey = item.ReferenceKey, }; DbContext.ReportSettings.Add(reportSetting); } await MapDeltaValuesAndCleanWhiteSpace(item, reportSetting, new string[] { "ReferenceType", "ReferenceKey" }, updateNulls : true); await DbContext.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> Get(string referenceType, string referenceKey) { var dbReferenceType = 0; if (SettingApi.ReferenceTypes.Group.Equals(referenceType, StringComparison.InvariantCultureIgnoreCase)) { dbReferenceType = 10; } else if (SettingApi.ReferenceTypes.Task.Equals(referenceType, StringComparison.InvariantCultureIgnoreCase)) { dbReferenceType = 20; } else { ModelState.AddModelError(referenceType, "Invalid Report Settings Reference Type."); return(new BadRequestObjectResult(ModelState)); } var reportSetting = await DbContext.ReportSettings.Where(s => s.PartitionId == CurrentPartitionId && s.ReferenceType == dbReferenceType && s.ReferenceKey == referenceKey) .Select(s => new ReportSettingApi { ReferenceType = referenceType, ReferenceKey = referenceKey, ToEmail = s.ToEmail, EmailSubject = s.EmailSubject, EmailBody = s.EmailBody, ReportTitle = s.ReportTitle, ReportText = s.ReportText, }).FirstOrDefaultAsync(); if (reportSetting == null) { reportSetting = new ReportSettingApi { ReferenceType = referenceType, ReferenceKey = referenceKey, }; } return(Json(reportSetting)); }