Example #1
0
        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));
        }
Example #2
0
        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());
        }