private void CreateNotification(Data dataOfStat, CoronaRecord previousRecord, out string title, out string messageBody, out bool isHaveUpdate) { title = "කොරෝනා රොගීන් වැඩිවීමක්"; messageBody = "සෞඛ්ය ප්රවර්ධන කාර්යංශයට අනුව "; isHaveUpdate = false; // send notification to firebase if (previousRecord.CasesCount != dataOfStat.local_total_cases) { isHaveUpdate = true; messageBody += "නව රෝගීන් " + (dataOfStat.local_total_cases - previousRecord.CasesCount).ToString() + " ක් හඳුනා ගනී. "; } if (previousRecord.DeathCount != dataOfStat.local_deaths) { isHaveUpdate = true; messageBody += "නව මරණ " + (dataOfStat.local_deaths - previousRecord.DeathCount).ToString() + " ක් හඳුනා ගනී ."; } }
private async Task <CoronaRecord> UpdateStatChanges(Data data) { // get current data row using date var previousRecord = await this.coronaStatsDbContext.CoronaRecords.OrderByDescending(o => o.RecordDate.Date).Take(1).FirstOrDefaultAsync(); var tempTreRecord = previousRecord.DeepClone <CoronaRecord>(); if (previousRecord.RecordDate.Date == DateTime.Now.Date) { // update if (previousRecord.CasesCount != data.local_total_cases || previousRecord.DeathCount != data.local_deaths || previousRecord.RecoverCount != data.global_recovered) { previousRecord.RecoverCount = data.local_recovered; previousRecord.DeathCount = data.local_deaths; previousRecord.CasesCount = data.local_total_cases; previousRecord.SuspectCount = data.local_total_number_of_individuals_in_hospitals; this.coronaStatsDbContext.CoronaRecords.Update(previousRecord); await this.coronaStatsDbContext.SaveChangesAsync(); } } else { // insert var newRecord = new CoronaRecord() { RecordDate = DateTime.Now.Date, CasesCount = data.local_total_cases, RecoverCount = data.local_recovered, DeathCount = data.local_deaths, SuspectCount = data.local_total_number_of_individuals_in_hospitals }; await this.coronaStatsDbContext.CoronaRecords.AddAsync(newRecord); await this.coronaStatsDbContext.SaveChangesAsync(); } return(tempTreRecord); }