public HttpResponseMessage SaveProjectReport([FromBody] Models.ProjectReport report) { try { CivilWorksEntities2 context = new CivilWorksEntities2(); context.ProjectReports.Add(report); context.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, "Successfully Saved")); //BO.ProjectReport rep = new BO.ProjectReport(); //List<BO.ProjectLabourEquipment> lstProjectLabourEquipment = new List<BOModel.ProjectLabourEquipment>(); //BO.ProjectLabourEquipment BOProjectLabourEquipment = new BOModel.ProjectLabourEquipment(); //foreach(Models.ProjectLabourEquipment item in report.ProjectLabourEquipments) //{ // BOProjectLabourEquipment.ID = item.ID; // BOProjectLabourEquipment.Labour_Name = item.Labour_Name; // BOProjectLabourEquipment.ContractorName = item.ContractorName; // BOProjectLabourEquipment.EquipmentHours = item.EquipmentHours; // BOProjectLabourEquipment.WorkDescription = item.WorkDescription; // BOProjectLabourEquipment.LabourHours = item.LabourHours; // BOProjectLabourEquipment.EquipmentName = item.EquipmentName; // lstProjectLabourEquipment.Add(BOProjectLabourEquipment); //} //rep.ProjectLabourIquipments = lstProjectLabourEquipment; //List<BO.ProjectQuantity> lstProjectquantity = new List<BOModel.ProjectQuantity>(); //BO.ProjectQuantity BOProjectQuantity = new BOModel.ProjectQuantity(); //foreach(Models.ProjectQuantity item in report.ProjectQuantities) //{ // BOProjectQuantity.ID = item.ID; // BOProjectQuantity.ItemID = item.ItemID; // BOProjectQuantity.Location = item.Location; // BOProjectQuantity.Status = item.Status; // BOProjectQuantity.Quantity = item.Quantity; // BOProjectQuantity.WorkDescription = item.WorkDescription; // BOProjectQuantity.ImageNote = item.ImageNote; // BOProjectQuantity.ImageFilePath = item.ImageFilePath; // lstProjectquantity.Add(BOProjectQuantity); //} //rep.ProjectQuantity = lstProjectquantity; //Models.ProjectReport rep = new Models.ProjectReport(); //List<ProjectLabourEquipment> equ = new List<ProjectLabourEquipment>(); //List<ProjectQuantity> equ1 = new List<ProjectQuantity>(); //rep.ProjectLabourEquipments = report.ProjectLabourEquipments; //rep.ProjectQuantities = report.ProjectQuantities; //rep.ProjectID = report.ProjectID; //rep.CheckedBy = report.CheckedBy; //rep.ReportNumber = report.ReportNumber; //rep.ReportDate = report.ReportDate; //rep.MorningWeather = report.MorningWeather; //rep.MorningTemprature = report.MorningTemprature; //rep.InspectionDate = report.InspectionDate; //rep.InspectedBy = report.InspectedBy; //rep.EveningWeather = report.EveningWeather; //rep.EveningTemperature = report.EveningTemperature; //rep.CreatedByUserID = report.CreatedByUserID; //rep.StartTime = report.StartTime; //rep.EndTime = report.EndTime; //rep.DateCreated = report.DateCreated; //context.ProjectReports.Add(rep); //return Request.CreateResponse<T>(HttpStatusCode.OK, rep); // return Request.CreateResponse<BO.ProjectReport>(HttpStatusCode.OK, rep); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message)); } }
public HttpResponseMessage UpdateProjectReport([FromBody] Models.ProjectReport report1) { try { CivilWorksEntities2 context = new CivilWorksEntities2(); ProjectReport ProjRpt = new ProjectReport(); ProjRpt = context.ProjectReports.Where(p => p.ID == report1.ID).FirstOrDefault(); if (ProjRpt != null) { ProjRpt.ProjectID = report1.ProjectID; ProjRpt.ReportNumber = report1.ReportNumber; ProjRpt.ReportDate = report1.ReportDate; ProjRpt.StartTime = report1.StartTime; ProjRpt.EndTime = report1.EndTime; ProjRpt.MorningWeather = report1.MorningWeather; ProjRpt.EveningWeather = report1.EveningWeather; ProjRpt.MorningTemprature = report1.MorningTemprature; ProjRpt.EveningTemperature = report1.EveningTemperature; ProjRpt.InspectedBy = report1.InspectedBy; ProjRpt.InspectionDate = report1.InspectionDate; ProjRpt.CheckedBy = report1.CheckedBy; ProjRpt.CheckedDate = report1.CheckedDate; var ProjQuantityIDs = report1.ProjectQuantities.Select(p => p.ID).ToList(); var ProjQuantity_Remove = context.ProjectQuantities .Where(p => p.ReportID == report1.ID && ProjQuantityIDs.Contains(p.ID) == false) .ToList(); ProjQuantity_Remove.ForEach(p => context.ProjectQuantities.Remove(p)); var ProjQuantity_Update = context.ProjectQuantities .Where(p => p.ReportID == report1.ID && ProjQuantityIDs.Contains(p.ID) == true) .ToList(); foreach (var eachProjQuantity in ProjQuantity_Update) { var ProjQuantity = report1.ProjectQuantities.Where(p => p.ID == eachProjQuantity.ID).SingleOrDefault(); eachProjQuantity.ReportID = ProjQuantity.ReportID; eachProjQuantity.ItemID = ProjQuantity.ItemID; eachProjQuantity.Location = ProjQuantity.Location; eachProjQuantity.Status = ProjQuantity.Status; eachProjQuantity.Quantity = ProjQuantity.Quantity; eachProjQuantity.WorkDescription = ProjQuantity.WorkDescription; eachProjQuantity.ImageNote = ProjQuantity.ImageNote; eachProjQuantity.ImageFilePath = ProjQuantity.ImageFilePath; } var ProjQuantityIDs_Add = context.ProjectQuantities.Where(p => p.ReportID == report1.ID).Select(p => p.ID).ToList(); var ProjQuantity_Add = report1.ProjectQuantities .Where(p => p.ReportID == report1.ID && ProjQuantityIDs_Add.Contains(p.ID) == false) .ToList(); ProjQuantity_Add.ForEach(p => context.ProjectQuantities.Add(p)); var ProjLabourIDs = report1.ProjectLabourEquipments.Select(p => p.ID).ToList(); var ProjLabour_Remove = context.ProjectLabourEquipments .Where(p => p.ReportID == report1.ID && ProjLabourIDs.Contains(p.ID) == false) .ToList(); ProjLabour_Remove.ForEach(p => context.ProjectLabourEquipments.Remove(p)); var ProjLabour_Update = context.ProjectLabourEquipments .Where(p => p.ReportID == report1.ID && ProjLabourIDs.Contains(p.ID) == true) .ToList(); foreach (var eachProjLabour in ProjLabour_Update) { var ProjLabour = report1.ProjectLabourEquipments.Where(p => p.ID == eachProjLabour.ID).SingleOrDefault(); eachProjLabour.ReportID = ProjLabour.ReportID; eachProjLabour.ContractorName = ProjLabour.ContractorName; eachProjLabour.Labour_Name = ProjLabour.Labour_Name; eachProjLabour.EquipmentName = ProjLabour.EquipmentName; eachProjLabour.WorkDescription = ProjLabour.WorkDescription; eachProjLabour.WorkDescription = ProjLabour.WorkDescription; eachProjLabour.LabourHours = ProjLabour.LabourHours; eachProjLabour.EquipmentHours = ProjLabour.EquipmentHours; } var ProjLabourIDs_Add = context.ProjectLabourEquipments.Where(p => p.ReportID == report1.ID).Select(p => p.ID).ToList(); var ProjLabour_Add = report1.ProjectLabourEquipments .Where(p => p.ReportID == report1.ID && ProjLabourIDs_Add.Contains(p.ID) == false) .ToList(); ProjLabour_Add.ForEach(p => context.ProjectLabourEquipments.Add(p)); context.SaveChanges(); var ProjReport = context.ProjectReports.Include("ProjectQuantities") .Include("ProjectLabourEquipments") .Where(p => p.ID == report1.ID) .ToList(); return(Request.CreateResponse(HttpStatusCode.OK, ProjReport)); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)); } return(Request.CreateResponse(HttpStatusCode.OK, report1)); /* * List<ProjectQuantity> quan = new List<ProjectQuantity>(); * List<ProjectLabourEquipment> lab = new List<ProjectLabourEquipment>(); * * foreach (var item in report1.ProjectQuantities) * { * * if(item.ID>0) * { * var a = context.ProjectQuantities.Where(x => x.ID == item.ReportID).FirstOrDefault(); * if(a != null) * { * context.ProjectQuantities.Remove(a); * * } * * context.ProjectQuantities.Add(item); * context.SaveChanges(); * } * else * { * context.ProjectQuantities.Add(item); * context.SaveChanges(); * } * * * } * * foreach (var item in report1.ProjectLabourEquipments) * { * if (item.ID > 0) * { * var a = context.ProjectLabourEquipments.Where(x => x.ID == item.ID).FirstOrDefault(); * if (a != null) * { * context.ProjectLabourEquipments.Remove(a); * } * context.ProjectLabourEquipments.Add(item); * context.SaveChanges(); * } * else * { * context.ProjectLabourEquipments.Add(item); * context.SaveChanges(); * } * } * * return Request.CreateResponse(HttpStatusCode.OK, report1); * } * * catch (Exception ex) * { * return Request.CreateErrorResponse(HttpStatusCode.BadRequest,ex.Message); * } */ }