public async Task <ActionResult <ValidCall> > PostValidCall(ValidCall validCall) { DateTime timeUtc = System.DateTime.UtcNow; TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); validCall.EventTime = TimeZoneInfo.ConvertTimeFromUtc(validCall.EventTime.ToUniversalTime(), cstZone); validCall.UpdatedDateTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone); if (validCall.FollowUpTime != null) { validCall.FollowUpTime = TimeZoneInfo.ConvertTimeFromUtc(validCall.FollowUpTime.GetValueOrDefault().ToUniversalTime(), cstZone); } context.ValidCalls.Add(validCall); await context.SaveChangesAsync(); logger.LogInformation("Post ValidCall successfull"); int hours = Convert.ToInt32(configuration.GetValue <string>("HourFilterRange")); var missedcalls = context.MissedCalls.Where(x => (x.CustomerMobileNumber.Equals(validCall.CustomerMobileNumber) && !x.ValidCallId.HasValue && x.EventTime > DateTime.Now.AddHours(-hours) ) ).ToList(); foreach (var v in missedcalls) { TimeSpan ts = validCall.EventTime - v.EventTime; v.ValidCallId = validCall.ValidCallId; v.RespondedTime = Math.Round(ts.TotalHours, 2).ToString() + "Hrs"; context.MissedCalls.Update(v); } context.SaveChanges(); return(Created("", validCall)); }
public async Task <IActionResult> PutValidCall(ValidCall validCall) { int id = validCall.ValidCallId; DateTime timeUtc = System.DateTime.UtcNow; TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); validCall.EventTime = TimeZoneInfo.ConvertTimeFromUtc(validCall.EventTime.ToUniversalTime(), cstZone); if (validCall.FollowUpTime != null) { validCall.FollowUpTime = TimeZoneInfo.ConvertTimeFromUtc(validCall.FollowUpTime.GetValueOrDefault().ToUniversalTime(), cstZone); } validCall.UpdatedDateTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone); if (id != validCall.ValidCallId) { return(BadRequest()); } context.Entry(validCall).State = EntityState.Modified; try { await context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ValidCallExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }