public string SubmitOutgestion([FromBody] OutgestionModel outgestionModel) { OutboundMaster ms = new OutboundMaster(); ms.DatasetId = outgestionModel.Mapping.DataSetId; ms.IsWithoutTempate = outgestionModel.Mapping.IsWithoutTempate; ms.TemplateId = outgestionModel.Mapping.TemplateId; ms.IsErrorOutbound = outgestionModel.Mapping.IsErrorOutbound; ms.CreatedBy = outgestionModel.Mapping.CreatedBy; ms.UpdatedBy = outgestionModel.Mapping.UpdatedBy; //creating mapping details List <ZionWeb.DAL.Entities.CoreToOutboundDetails> mapDetails = new List <ZionWeb.DAL.Entities.CoreToOutboundDetails>(); int order = 1; outgestionModel.Mapping.MappingArray.ForEach(m => { if (m.Source.CoreDetailId != 0) { CoreToOutboundDetails mapRow = new CoreToOutboundDetails { CreatedBy = outgestionModel.Mapping.CreatedBy, CreatedDate = DateTime.Now, CoreDetailId = m.Source.CoreDetailId, TemplateDetailId = (int)m.Target.TemplateDetailId, Order = order }; mapDetails.Add(mapRow); order++; } }); //Create joins and filters conditions list List <OutboundFilterJoinConditions> outboundFilterJoinConditions = new List <OutboundFilterJoinConditions>(); //check for userquery if (!String.IsNullOrEmpty(outgestionModel.UserQuery) && outgestionModel.UserQuery.Length > 0) { ms.UserQuery = outgestionModel.UserQuery; } else { StringBuilder computedQuery = new StringBuilder(); computedQuery.Append(outgestionModel.Mapping.SelectQuery + " "); //Add Joins if (outgestionModel.Joins != null && outgestionModel.Joins.Count > 0 && outgestionModel.Mapping.TableList.Count > 1) { foreach (OutboundFilterJoinModel model in outgestionModel.Joins) { OutboundFilterJoinConditions entity = new OutboundFilterJoinConditions { Column1CoreDetailId = model.Column1CoreDetailId, Column2CoreDetailId = model.Column2CoreDetailId, JoinCondition = model.JoinCondition, Operator = model.Operator, Order = model.Order, CreatedBy = outgestionModel.Mapping.CreatedBy, CreatedDate = DateTime.Now }; outboundFilterJoinConditions.Add(entity); } string joinsQuery = GenerateJoinsQuery(outgestionModel.Joins); computedQuery.Append(joinsQuery + " "); } else { computedQuery.Append(outgestionModel.Mapping.TableList[0] + " "); } //Add Filters if (outgestionModel.Filters != null && outgestionModel.Filters.Count > 0) { StringBuilder filtersQuery = new StringBuilder(); foreach (OutboundFilterJoinModel model in outgestionModel.Filters) { OutboundFilterJoinConditions entity = new OutboundFilterJoinConditions { Column1CoreDetailId = model.Column1CoreDetailId, Column2CoreDetailId = model.Column2CoreDetailId, WhereText = model.WhereText, Operator = model.Operator, Order = model.Order, CreatedBy = outgestionModel.Mapping.CreatedBy, CreatedDate = DateTime.Now }; outboundFilterJoinConditions.Add(entity); int index = outgestionModel.Filters.IndexOf(model); if (index > 0) { filtersQuery = filtersQuery.Append(" AND "); } filtersQuery = filtersQuery.Append(" " + model.CoreTable1 + "." + model.Column1Name + " " + model.Operator + " "); if (!string.IsNullOrEmpty(model.Column2Name) && model.Column2Name.Trim().Length > 0) { filtersQuery = filtersQuery.Append(model.CoreTable2 + "." + model.Column2Name); } else if (!string.IsNullOrEmpty(model.WhereText) && model.WhereText.Trim().Length > 0) { //Check for datatype not required if (model.Operator.ToLower() == "in") { filtersQuery = filtersQuery.Append(" (" + model.WhereText.Trim() + ")"); } else { filtersQuery = filtersQuery.Append(" " + model.WhereText.Trim()); } } } computedQuery.Append(" WHERE " + filtersQuery); } ms.ComputedQuery = computedQuery.ToString(); } //apply logic to convert it to various models and query. return(_outgestionDAL.SubmitOutgestion(ms, mapDetails, outboundFilterJoinConditions)); }
public string SubmitOutgestion([FromBody] OutgestionModel outgestionModel) { return(_outgestionManager.SubmitOutgestion(outgestionModel)); }