public void Export(ClinicsMySQLContext mySqlContext) { DataTable procedures = this.ReadFromSQLite(); DataTable joined = this.JoinData(mySqlContext, procedures, "Procedure", "Name"); this.SaveDataToExcel(joined); }
public void Export(ClinicsMySQLContext mySqlContext, int year, int month, string specialistName, string procedureName, int procedureCount, decimal totalPrice) { var specialistsStatistics = mySqlContext.Specialiststatistics .Where(ss => ss.Specialist.Equals(specialistName) && ss.Procedure.Equals(procedureName) && ss.Month.Equals(month) && ss.Year == year) .FirstOrDefault(); if (specialistsStatistics == null) { Specialiststatistic newSpecialistStatistics = new Specialiststatistic { Specialist = specialistName, Procedure = procedureName, ProcedureCount = procedureCount, TotalPrice = totalPrice.ToString(), Month = month, Year = year }; mySqlContext.Add(newSpecialistStatistics); mySqlContext.SaveChanges(); } }
private DataTable JoinData(ClinicsMySQLContext mySqlContext, DataTable procedures, string joinProp, string joinCol) { DataTable result = this.GenerateExcelColumns(procedures, joinCol); // For each item in the collection fill a row in the excel table foreach (var row in mySqlContext.Specialiststatistics) { DataRow insertRow = result.NewRow(); // Fill the properties of the object foreach (var prop in typeof(Specialiststatistic).GetProperties()) { insertRow[prop.Name] = row.GetType().GetProperty(prop.Name).GetValue(row, null); } // Find the matching row from the table string procName = row.GetType().GetProperty(joinProp).GetValue(row, null).ToString(); foreach (DataRow proc in procedures.Rows) { if ((string)proc[joinCol] == procName) { foreach (DataColumn procCol in procedures.Columns) { if (procCol.ColumnName != joinCol) { insertRow[procCol.ColumnName] = proc[procCol.ColumnName]; } } break; } } result.Rows.Add(insertRow); } return result; }