public static string GetToken(AutomateData automateData, int lastState) { const int finishStateNumber2 = 4; const int finishStateNumber8 = 6; const int finishStateNumber16 = 8; const int finishStateNumber = 1; const int finishStateNumberOne = 2; const int finishStateNumberTwo = 4; const int finishStateNumberThree = 7; const int finishStateNumberFour = 9; switch (automateData.Type) { case "identificator": return(IDENTIFICATOR); case "number10" when lastState == finishStateNumberOne: return(NUMBER10); case "number10" when lastState == finishStateNumberTwo: return(DECIMAL); case "number10" when lastState == finishStateNumber: return(NUMBER10); case "number10" when lastState == finishStateNumberThree: return(DECIMAL); case "number10" when lastState == finishStateNumberFour: return(NUMBER10); case "number2816" when lastState == finishStateNumber2: return(NUMBER2); case "number2816" when lastState == finishStateNumber8: return(NUMBER8); case "number2816" when lastState == finishStateNumber16: return(NUMBER16); default: return(UNKNOWN); } }
public static void UpdateWeeklyAutomationStatus(string FileName, int TeamId) { //Retrieve data from the excel file and store it in a dictionary Helpers.PopulateInCollectionFromExcel(FileName, TeamId); var db = new AutomationDashboardEntities(); Dictionary <string, spGetCurrentStatusOfAutomationForATeam_Result> CurrentStatus = db.spGetCurrentStatusOfAutomationForATeam(TeamId).ToDictionary(e => e.ProductArea); List <AutomateData> RowsToBeInserted = new List <AutomateData>(); List <WeeklyTriaging> WeeklyTriagingToBeInserted = new List <WeeklyTriaging>(); var CurrentFriday = Helpers.GetPreviousFriday(DateTime.Now).AddDays(7); //Filter out the rows to be inserted foreach (var record in Helpers.automateData) { if (!CurrentStatus.ContainsKey(record.Key)) { //Insert this data in the database as this is a new entry which does not exist in the database RowsToBeInserted.Add(record.Value); } else { //check if there is progress in the field and insert only those fields in the database spGetCurrentStatusOfAutomationForATeam_Result StatusFromDatabase = CurrentStatus[record.Key]; AutomateData StatusFromUser = record.Value; if (StatusFromUser.NoOfAutomatedTestcases > StatusFromDatabase.NoOfAutomatedTestcases || StatusFromUser.NoOfTFSTestcase > StatusFromDatabase.NoOfTFSTestcase) { //only then select the record for insert RowsToBeInserted.Add(StatusFromUser); } } //check if any modifications is done to the triaging data in the excel var entry = db.WeeklyTriagings.FirstOrDefault(row => row.TeamId == TeamId && row.ProductArea == record.Key && row.Date == CurrentFriday.Date); if ((record.Value.NoOfTestCasesDebugged > 0 && entry == null) || (entry != null && entry.NoOfTestCasesDebugged < record.Value.NoOfTestCasesDebugged)) { WeeklyTriaging triaging = new WeeklyTriaging(TeamId, record.Key, CurrentFriday, record.Value.NoOfTestCasesDebugged); WeeklyTriagingToBeInserted.Add(triaging); } } foreach (var record in RowsToBeInserted) { //if the record exists in the database then only update the existing one var entry = db.AutomateDatas.FirstOrDefault(row => row.TeamId == TeamId && row.ProductArea == record.ProductArea && row.date == record.date.Date); if (entry == null) { db.AutomateDatas.Add(record); } else { entry.NoOfAutomatedTestcases = record.NoOfAutomatedTestcases; entry.NoOfTFSTestcase = record.NoOfTFSTestcase; db.Entry(entry).State = EntityState.Modified; } db.SaveChanges(); } foreach (var record in WeeklyTriagingToBeInserted) { var entry = db.WeeklyTriagings.FirstOrDefault(row => row.TeamId == TeamId && row.ProductArea == record.ProductArea && row.Date == CurrentFriday.Date); if (entry == null) { db.WeeklyTriagings.Add(record); } else { entry.NoOfTestCasesDebugged = record.NoOfTestCasesDebugged; db.Entry(entry).State = EntityState.Modified; } db.SaveChanges(); } }