예제 #1
0
        public SOWSearchResponse GetSOWs()
        {
            logger.Info(Environment.NewLine + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + Environment.NewLine);

            logger.Info(string.Format("{0}.{1} - START", this.GetType().Name, MethodBase.GetCurrentMethod().Name));

            var requestHeader = Request;

            var headers = requestHeader.Headers;

            if (headers.Contains("esFilters"))
            {
                searchFilters = headers.GetValues("esFilters").First();
            }

            SearchFiltersReq req = Newtonsoft.Json.JsonConvert.DeserializeObject <SearchFiltersReq>(searchFilters);

            SOWSearchResponse objRes = _sowMasterService.GetSOWs(req);

            logger.Info(string.Format("{0}.{1} - END", this.GetType().Name, MethodBase.GetCurrentMethod().Name));

            return(objRes);
        }
예제 #2
0
        public SOWSearchResponse GetSOWs(SearchFiltersReq req)
        {
            var length = req.Filters.Count;
            var dynamicWhereCondition = string.Empty;

            //Testing Code
            //int ii = 1, ji = 0;
            //var result = ii / ji;

            for (var i = 0; i < length; i++)
            {
                var filterName       = req.Filters[i].FilterName;
                var filterValue      = req.Filters[i].FilterValue;
                var filterValueMatch = req.Filters[i].FilterValueMatch;

                if (string.IsNullOrEmpty(filterName))
                {
                    continue;
                }

                dynamicWhereCondition = dynamicWhereCondition + " AND " + "[" + filterName + "]";
                if (filterValueMatch == "Exact")
                {
                    dynamicWhereCondition = dynamicWhereCondition + " = '" + filterValue + "'";
                }
                else if (filterValueMatch == "LikeBefore")
                {
                    dynamicWhereCondition = dynamicWhereCondition + " LIKE '%" + filterValue + "'";
                }
                else if (filterValueMatch == "LikeAfter")
                {
                    dynamicWhereCondition = dynamicWhereCondition + " LIKE '" + filterValue + "%'";
                }
                else if (filterValueMatch == "LikeBoth")
                {
                    dynamicWhereCondition = dynamicWhereCondition + " LIKE '%" + filterValue + "%'";
                }
            }

            var queryParameters = new DynamicParameters();

            queryParameters.Add("@WhereConditions", dynamicWhereCondition);

            var reader = SqlMapper.QueryMultiple(con, "dbo.sp_SOWMasterSelect", queryParameters, commandType: StoredProcedure);

            var SOWMastersTableList = reader.Read <SOWMasterTable>().ToList();
            var ResourceUtilizationDetailsTableList = reader.Read <ResourceUtilizationDetailsTable>().ToList();
            var PricingScheduleDetailsTableList     = reader.Read <PricingScheduleDetailsTable>().ToList();

            var sowCount = SOWMastersTableList.Count;

            SOWSearchResponse sOWSearchResponse = new SOWSearchResponse()
            {
                Request = new ResponseSR()
                {
                    EsSOWMaster = new EsSOWMasterSR()
                    {
                        SOWMasters = new List <SOWMasterSR>(sowCount)
                    }
                }
            };

            var listRow = 0;

            foreach (var item in SOWMastersTableList)
            {
                sOWSearchResponse.Request.EsSOWMaster.SOWMasters.Add(
                    new SOWMasterSR
                {
                    SOWId                 = item.SOWId,
                    SowNo                 = item.SOWNo,
                    SowDesc               = item.SOWDesc,
                    SOWStartDate          = item.StartDate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture),
                    SOWEndDate            = item.EndDate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture),
                    PO                    = item.PO,
                    SOWType_SystemParamId = item.SOWType_SystemParamId,
                    ActionBySPOC          = item.ActionBySPOC,
                    SOWAmount             = item.SOWAmount,
                    AccountId             = item.AccountId,
                    CustMgrId             = item.CustMgrId,
                    Status_SystemParamId  = item.Status_SystemParamId,
                    PartialBilliing       = item.PartialBilliing,
                    FOC                   = item.FOC
                });

                sOWSearchResponse.Request.EsSOWMaster.SOWMasters[listRow].ResourceUtilizationDetails = new List <ResourceUtilizationDetailSearchResponse>();

                foreach (var RUD in ResourceUtilizationDetailsTableList)
                {
                    if (item.SOWId == RUD.SOWId)
                    {
                        sOWSearchResponse.Request.EsSOWMaster.SOWMasters[listRow].ResourceUtilizationDetails.Add(
                            new ResourceUtilizationDetailSearchResponse
                        {
                            ResourceUtilizationId = RUD.ResourceUtilizationId,
                            SOWId              = RUD.SOWId,
                            ResourceId         = RUD.ResourceId,
                            WorkOrderStartDate = RUD.WorkOrderStartDate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture),
                            WorkOrderEndDate   = RUD.WorkOrderEndDate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture),
                            BenchStartDate     = RUD.BenchStartDate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture),
                            BenchEndDate       = RUD.BenchEndDate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture),
                            FoCStartDate       = RUD.FoCStartDate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture),
                            FoCEndDate         = RUD.FoCEndDate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture)
                        });
                    }
                }

                sOWSearchResponse.Request.EsSOWMaster.SOWMasters[listRow].PricingScheduleDetails = new List <PricingScheduleDetailSearchResponse>();

                foreach (var PSD in PricingScheduleDetailsTableList)
                {
                    if (item.SOWId == PSD.SOWId)
                    {
                        sOWSearchResponse.Request.EsSOWMaster.SOWMasters[listRow].PricingScheduleDetails.Add(
                            new PricingScheduleDetailSearchResponse
                        {
                            PricingSchId   = PSD.PricingSchId,
                            SOWId          = PSD.SOWId,
                            MonthName      = PSD.MonthName,
                            BillableDays   = PSD.BillableDays,
                            MilestoneName  = PSD.MilestoneName,
                            MilestoneValue = PSD.MilestoneValue,
                            RevisionNumber = PSD.RevisionNumber,
                            RevisionDate   = PSD.RevisionDate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture)
                        });
                    }
                }

                listRow++;
            }

            var data = sOWSearchResponse;

            return(data);
        }