public ActionResult TrainSettings(string Data) { try { int CustomerId = 0; if (this.Session["CustomerId"] != null) { CustomerId = Convert.ToInt16(this.Session["CustomerId"]); } List<train> trains = this.trainRepository.GetAll().Where(p => p.customer_customerID == CustomerId).ToList(); Trainsettings trainDetails = new Trainsettings(); var customer = this.customerRepository.GetById(CustomerId); int NoofTrains = Convert.ToInt16(customer.num_trains); var trainData = this.modifiedCondRepository.GetTrains(CustomerId); if (trainData != 0) { long trId = 0; if (Data == null) { trId = this.modifiedCondRepository.GetTrainIdByCsutomer(CustomerId); } else { trId = Convert.ToInt16(Data); } var train = this.modifiedCondRepository.GetTrainDetailsByCustomerIdandTrainId(trId, CustomerId); if (trains.Count == 0) { for (int i = 0; i < NoofTrains; i++) { trainDetails.TrianNoList.Add(new SelectListItem() { Text = "Train " + (i + 1), Value = "0" }); } } else { for (int i = 0; i < trains.Count; i++) { trainDetails.TrianNoList.Add(new SelectListItem() { Text = "Train " + (i + 1), Value = trains[i].trainID.ToString() }); } } trainDetails.Train = train; if (train != null && train.num_beds_cation == 2) { trainDetails.cation = true; } if (train != null && train.num_beds_anion == 2) { trainDetails.anion = true; } if (train != null && train.using_manifold == "NO") { trainDetails.manifold = false; } else if (train != null && train.using_manifold == "YES") { trainDetails.manifold = true; } List<vessel> lstVessels = new List<vessel>(); List<int> VesselNumbers = new List<int>(); if (Data == null) { lstVessels = this.modifiedVesselRepository.FetchVesselsList(Convert.ToInt16(trId)); trainDetails.VesslsList = lstVessels; for (int i = 0; i < trainDetails.VesslsList.Count; i++) { var resin = this.modifiedVesselRepository.GetResinById(lstVessels[i].resin_data_product_id); if (resin != null) { lstVessels[i].ResinModel = resin.model_number; lstVessels[i].ResinData = resin.primary_type + " " + resin.manufacturer + "(" + resin.model_number + ")"; } if (i == 2 || i == 3) { VesselNumbers.Add(Convert.ToInt32(lstVessels[i].vessel_number)); } if (lstVessels[i].with_degassifier == "1") { lstVessels[i].Degasifier = true; } if (lstVessels[i].with_polisher == "1") { lstVessels[i].Polisher = true; } if (trainDetails.manifold == false) // Set number of regens to "N/A" if the user is not using a manifold { lstVessels[i].num_regens = "N/A"; } } if (VesselNumbers.Count == 1) { lstVessels.Add(new vessel() { vessel_number = VesselNumbers[0] == 3 ? 4 : 3 }); lstVessels = lstVessels.OrderBy(x => x.vessel_number).ToList(); trainDetails.VesslsList = lstVessels; } else if (VesselNumbers.Count == 2) { lstVessels = lstVessels.OrderBy(x => x.vessel_number).ToList(); trainDetails.VesslsList = lstVessels; } else { for (int i = trainDetails.VesslsList.Count; i < 4; i++) { lstVessels.Add(new vessel()); } } return this.PartialView("_TrainSettings", trainDetails); } else // This happens when the user switches between trains!!! { lstVessels = this.modifiedVesselRepository.FetchVesselsList(Convert.ToInt16(trId)); trainDetails.VesslsList = lstVessels; int i = 0; if (lstVessels != null) { foreach (var Vessel in lstVessels) { if (i == 2 || i == 3) { VesselNumbers.Add(Convert.ToInt32(Vessel.vessel_number)); } var resin = this.modifiedVesselRepository.GetResinById(Vessel.resin_data_product_id); Vessel.ResinModel = resin.model_number; Vessel.ResinData = resin.primary_type + " " + resin.manufacturer + "(" + resin.model_number + ")"; if (lstVessels[i].with_degassifier == "1") { lstVessels[i].Degasifier = true; } if (lstVessels[i].with_polisher == "1") { lstVessels[i].Polisher = true; } i = i + 1; } } if (VesselNumbers.Count == 1) { lstVessels.Add(new vessel() { vessel_number = VesselNumbers[0] == 3 ? 4 : 3 }); lstVessels = lstVessels.OrderBy(x => x.vessel_number).ToList(); trainDetails.VesslsList = lstVessels; } else if (VesselNumbers.Count == 2) { lstVessels = lstVessels.OrderBy(x => x.vessel_number).ToList(); trainDetails.VesslsList = lstVessels; } else if (trainDetails.VesslsList != null) { for (int j = trainDetails.VesslsList.Count; j < 4; j++) { lstVessels.Add(new vessel()); } } return this.PartialView("_bedsettings", trainDetails); } } else { trainDetails.Train = new train(); trainDetails.cation = false; trainDetails.anion = false; trainDetails.Train.using_manifold = "NO"; trainDetails.manifold = false; for (int i = 0; i < NoofTrains; i++) { trainDetails.TrianNoList.Add(new SelectListItem() { Text = "Train " + (i + 1), Value = "0" }); } List<vessel> lstVessels = new List<vessel>(); for (int i = 0; i < 4; i++) { lstVessels.Add(new vessel()); } trainDetails.VesslsList = lstVessels; return this.PartialView("_TrainSettings", trainDetails); } } catch { throw; } }
/// <summary> /// Processes the train settings. /// </summary> /// <param name="trainSettings">The train settings.</param> /// <param name="train">The train.</param> /// <returns></returns> private train ProcessTrainSettings(Trainsettings trainSettings, train train) { List<vessel> lstVessels = new List<vessel>(); train = trainSettings.Train; train.customer_customerID = Convert.ToInt32(this.Session["CustomerId"]); if (train.using_manifold == null) { train.using_manifold = "NO"; } var TrainInDB = this.modifiedCondRepository.GetTrainDetailsByCustomerIdandTrainId(train.trainID, train.customer_customerID); if (TrainInDB != null) { this.modifiedTrainRepository.UpdateTrain(train); } else { this.trainRepository.Insert(train); } this.trainRepository.SubmitChanges(); List<vessel> vessels = null; if (trainSettings.Train != null && trainSettings.Train.trainID != 0) { vessels = this.modifiedVesselRepository.FetchVesselsList(trainSettings.Train.trainID); } if (vessels == null || vessels.Count == 0) { using (TransactionScope scope = new TransactionScope()) { int vesselNumber = 0; foreach (vessel vessel in trainSettings.VesslsList) { try { vesselNumber = vesselNumber + 1; if (vessel.UpdateVessel == "True") { vessel.with_degassifier = vessel.Degasifier == true ? "1" : "0"; vessel.with_polisher = vessel.Polisher == true ? "1" : "0"; if (vesselNumber > 0 && vesselNumber < 5) { vessel.vessel_number = vesselNumber; if (vesselNumber == 1 || vesselNumber == 3) { vessel.bed_number = "1"; } else { vessel.bed_number = "2"; } } vessel.vesselID = this.modifiedVesselRepository.GetNewVesselId(); vessel.vessel_customerID = this.Session["CustomerId"].ToString(); vessel.train_trainID = train.trainID; int resinDataProductId = this.modifiedVesselRepository.GetResinId(vessel.ResinModel); vessel.resin_data_product_id = resinDataProductId; if (vessel.num_regens == null) { vessel.num_regens = "00"; } this.modifiedVesselRepository.InsertVessel(vessel); this.vesselRepository.SubmitChanges(); } else if (vessel.UpdateVessel == "False" && !string.IsNullOrEmpty(vessel.name)) { this.modifiedVesselRepository.DeleteVessel(vessel); } } catch { throw; } } scope.Complete(); } this.Session["HasTrainDetails"] = "Yes"; } else { train = trainSettings.Train; if (train.customer_customerID == 0) { train.customer_customerID = Convert.ToInt32(this.Session["CustomerId"]); } using (TransactionScope scope = new TransactionScope()) { int vesselNumber = 0; lstVessels = this.modifiedVesselRepository.FetchVesselsList(Convert.ToInt16(train.trainID)); int vesselcount = 0; foreach (vessel vessel in trainSettings.VesslsList) // This Updates the DB's Vessel Data with updated view information entered in by the user { vesselNumber = vesselNumber + 1; if (vessel.UpdateVessel == "True") { vessel.with_degassifier = vessel.Degasifier == true ? "1" : "0"; vessel.with_polisher = vessel.Polisher == true ? "1" : "0"; vessel.throughput = vessel.throughput == null ? "0" : vessel.throughput; int resinDataProductId = this.modifiedVesselRepository.GetResinId(vessel.ResinModel); vessel.resin_data_product_id = resinDataProductId; if (vesselNumber > 0 && vesselNumber < 5) { vessel.vessel_number = vesselNumber; if (vesselNumber == 1 || vesselNumber == 2) { vessel.bed_number = "1"; } else { vessel.bed_number = "2"; } } vessel.vessel_customerID = this.Session["CustomerId"].ToString(); vessel.train_trainID = train.trainID; // Ensure that all num-regens data is populated if(train.using_manifold == "NO") { vessel.num_regens = (lstVessels.ElementAt(vesselcount).num_regens) != null ? lstVessels.ElementAt(vesselcount).num_regens : "00"; // If we are not using a manifold store the previous manifold data (if it exists, otherwise store 00) vessel.throughput = (lstVessels.ElementAt(vesselcount).throughput) != null ? lstVessels.ElementAt(vesselcount).throughput : "00"; // If we are not using a manifold store the previous manifold data (if it exists, otherwise store 00) } else if (vessel.num_regens == null || vessel.throughput == null) { vessel.num_regens = "000"; vessel.throughput = "000"; } try { this.modifiedVesselRepository.UpdateVessel(vessel);//Delete vessel if its not being updated to DB } catch { throw; } } else if (vessel.UpdateVessel == "False" && !string.IsNullOrEmpty(vessel.name)) { this.modifiedVesselRepository.DeleteVessel(vessel); } vesselcount++; } scope.Complete(); } } return train; }
public string TrainSettingsWithoutRedirect(Trainsettings trainSettings) { train train = new train(); try { train = ProcessTrainSettings(trainSettings, train); return "true"; } catch { return "false"; throw; } }
public ActionResult TrainSettings(Trainsettings trainSettings) { train train = new train(); try { train = ProcessTrainSettings(trainSettings, train); } catch { throw; } return RedirectToAction("DashBoard"); }
/// <summary> /// Processes the train settings. /// </summary> /// <param name="trainSettings">The train settings.</param> /// <param name="train">The train.</param> /// <returns></returns> private train ProcessTrainSettings(Trainsettings trainSettings, train train) { train = trainSettings.Train; train.customer_customerID = Convert.ToInt32(this.Session["CustomerId"]); if (train.using_manifold == null) { train.using_manifold = "NO"; } var TrainInDB = this.modifiedCondRepository.GetTrainDetailsByCustomerIdandTrainId(train.trainID, train.customer_customerID); if (TrainInDB != null) { this.modifiedTrainRepository.UpdateTrain(train); } else { this.trainRepository.Insert(train); } this.trainRepository.SubmitChanges(); List<vessel> vessels = null; if (trainSettings.Train != null && trainSettings.Train.trainID != 0) { vessels = this.modifiedVesselRepository.FetchVesselsList(trainSettings.Train.trainID); } if (vessels == null || vessels.Count == 0) { using (TransactionScope scope = new TransactionScope()) { int vesselNumber = 0; foreach (vessel vessel in trainSettings.VesslsList) { try { vesselNumber = vesselNumber + 1; if (vessel.UpdateVessel == "True") { vessel.with_degassifier = vessel.Degasifier == true ? "1" : "0"; vessel.with_polisher = vessel.Polisher == true ? "1" : "0"; if (vesselNumber > 0 && vesselNumber < 5) { vessel.vessel_number = vesselNumber; if (vesselNumber == 1 || vesselNumber == 3) { vessel.bed_number = "1"; } else { vessel.bed_number = "2"; } } vessel.vesselID = this.modifiedVesselRepository.GetNewVesselId(); vessel.vessel_customerID = this.Session["CustomerId"].ToString(); vessel.train_trainID = train.trainID; int resinDataProductId = this.modifiedVesselRepository.GetResinId(vessel.ResinModel); vessel.resin_data_product_id = resinDataProductId; this.modifiedVesselRepository.InsertVessel(vessel); this.vesselRepository.SubmitChanges(); } else if (vessel.UpdateVessel == "False" && !string.IsNullOrEmpty(vessel.name)) { this.modifiedVesselRepository.DeleteVessel(vessel); } } catch { throw; } } scope.Complete(); } this.Session["HasTrainDetails"] = "Yes"; } else { train = trainSettings.Train; if (train.customer_customerID == 0) { train.customer_customerID = Convert.ToInt32(this.Session["CustomerId"]); } using (TransactionScope scope = new TransactionScope()) { int vesselNumber = 0; foreach (vessel vessel in trainSettings.VesslsList) { vesselNumber = vesselNumber + 1; if (vessel.UpdateVessel == "True") { vessel.with_degassifier = vessel.Degasifier == true ? "1" : "0"; vessel.with_polisher = vessel.Polisher == true ? "1" : "0"; vessel.throughput = vessel.throughput == null ? "0" : vessel.throughput; int resinDataProductId = this.modifiedVesselRepository.GetResinId(vessel.ResinModel); vessel.resin_data_product_id = resinDataProductId; if (vesselNumber > 0 && vesselNumber < 5) { vessel.vessel_number = vesselNumber; if (vesselNumber == 1 || vesselNumber == 2) { vessel.bed_number = "1"; } else { vessel.bed_number = "2"; } } vessel.vessel_customerID = this.Session["CustomerId"].ToString(); vessel.train_trainID = train.trainID; try { this.modifiedVesselRepository.UpdateVessel(vessel);//Delete vessel if its not being updated to DB } catch { throw; } } else if (vessel.UpdateVessel == "False" && !string.IsNullOrEmpty(vessel.name)) { this.modifiedVesselRepository.DeleteVessel(vessel); } } scope.Complete(); } } return train; }