public DiseaseDistroCm CreateCm(DiseaseType disease) { DiseaseDistroCm dd = new DiseaseDistroCm(); dd.Disease = GetDiseaseById((int)disease); GetIndicatorsForDisease(dd.Disease.Id, dd); return dd; }
public DiseaseDistroCmVm(AdminLevel a, DiseaseDistroCm s, ICalcIndicators c) { r = new DiseaseRepository(); this.model = s; adminLevel = a; calc = c; }
public DiseaseDistroCmVm(AdminLevel a, int did, ICalcIndicators c) { adminLevel = a; r = new DiseaseRepository(); model = r.CreateCm((DiseaseType)did); model.AdminLevelId = adminLevel.Id; calc = c; }
protected override void ReloadDropdownValues() { if (cmType != null) { cmType = repo.CreateCm((DiseaseType)cmType.Disease.Id); DropDownValues = cmType.IndicatorDropdownValues; } else { type = repo.Create((DiseaseType)type.Disease.Id); DropDownValues = type.IndicatorDropdownValues; } }
protected override void SetSpecificType(int id) { cmType = null; type = null; var d = repo.GetDiseaseById(id); if (d.DiseaseType == Translations.CM) { cmType = repo.CreateCm((DiseaseType)d.Id); Indicators = cmType.Indicators; DropDownValues = cmType.IndicatorDropdownValues; } else { type = repo.Create((DiseaseType)d.Id); Indicators = type.Indicators; DropDownValues = type.IndicatorDropdownValues; } Calculator = new CalcDistro(); Validator = new DiseaseDistroCustomValidator(); }
public void SaveCm(DiseaseDistroCm distro, int userId, OleDbConnection connection, OleDbCommand command) { distro.MapIndicatorsToProperties(); distro.MapPropertiesToIndicators(); if (distro.Id > 0) command = new OleDbCommand(@"UPDATE DiseaseDistributions SET DiseaseId=@DiseaseId, AdminLevelId=@AdminLevelId, Notes=@Notes, DateReported=@DateReported, UpdatedById=@UpdatedById, UpdatedAt=@UpdatedAt WHERE ID=@id", connection); else command = new OleDbCommand(@"INSERT INTO DiseaseDistributions (DiseaseId, AdminLevelId, Notes, DateReported, UpdatedById, UpdatedAt, CreatedById, CreatedAt) values (@DiseaseId, @AdminLevelId, @Notes, @DateReported, @UpdatedById, @UpdatedAt, @CreatedById, @CreatedAt)", connection); command.Parameters.Add(new OleDbParameter("@DiseaseId", distro.Disease.Id)); command.Parameters.Add(OleDbUtil.CreateNullableParam("@AdminLevelId", distro.AdminLevelId)); command.Parameters.Add(OleDbUtil.CreateNullableParam("@Notes", distro.Notes)); command.Parameters.Add(OleDbUtil.CreateDateTimeOleDbParameter("@DateReported", distro.DateReported.Value)); command.Parameters.Add(new OleDbParameter("@UpdatedById", userId)); command.Parameters.Add(OleDbUtil.CreateDateTimeOleDbParameter("@UpdatedAt", DateTime.Now)); if (distro.Id > 0) command.Parameters.Add(new OleDbParameter("@id", distro.Id)); else { command.Parameters.Add(new OleDbParameter("@CreatedById", userId)); command.Parameters.Add(OleDbUtil.CreateDateTimeOleDbParameter("@CreatedAt", DateTime.Now)); } command.ExecuteNonQuery(); if (distro.Id <= 0) { command = new OleDbCommand(@"SELECT Max(ID) FROM DiseaseDistributions", connection); distro.Id = (int)command.ExecuteScalar(); } AddIndicatorValues(connection, distro, distro.Id, userId); }
public void Save(DiseaseDistroCm distro, int userId) { bool transWasStarted = false; OleDbConnection connection = new OleDbConnection(DatabaseData.Instance.AccessConnectionString); using (connection) { connection.Open(); try { // START TRANS OleDbCommand command = new OleDbCommand("BEGIN TRANSACTION", connection); command.ExecuteNonQuery(); transWasStarted = true; SaveCm(distro, userId, connection, command); // COMMIT TRANS command = new OleDbCommand("COMMIT TRANSACTION", connection); command.ExecuteNonQuery(); transWasStarted = false; } catch (Exception) { if (transWasStarted) { try { OleDbCommand cmd = new OleDbCommand("ROLLBACK TRANSACTION", connection); cmd.ExecuteNonQuery(); } catch { } } throw; } } }