Esempio n. 1
0
        /// <param name="q"></param>
        /// <param name="cp">第几页</param>
        /// <param name="c">页大小</param>
        /// <param name="navc"></param>
        /// <returns></returns>
        //[System.Web.Http.HttpGet]
        //[ValidateInput(false)]
        //[System.Web.Http.Route("GetSGData")]
        private Object GetSGData(string q, string domain = null, string cp = null, string c = null, string navc = null)
        {
            try
            {
                List <FuncElapsed>     listElaps = new List <FuncElapsed>();
                CBase.Log.TimeWatchLog tlogTotal = new CBase.Log.TimeWatchLog();
                CBase.Log.TimeWatchLog tlog_temp = new CBase.Log.TimeWatchLog();

                if (string.IsNullOrEmpty(q))
                {
                    return(null);
                }

                int recStart = 0;
                int recCount = 0;

                InitPageParam(cp, c, out recStart, out recCount);

                //调用句群接口,返回内容
                QueryContainer <CMAnswer> qcAnswer = null;

                ClientInfo cinfo = new ClientInfo()
                {
                    UserName = CommonHelper.GetUserName(),
                    IP       = CommonHelper.GetClientIP()
                };
                tlog_temp.Start();
                cinfo.Type = ContentLogType.句群超时;
                qcAnswer   = TimedTask.CallActionWithTimeoutSync(timeout, () => new Answer(domain).Get(q, recStart, recCount, domain), q, cinfo);
                listElaps.Add(new FuncElapsed("SenGroup", tlog_temp.Debug()));

                tlog_temp.Start();
                cinfo.Type = ContentLogType.问题排序超时;
                QueryDataContainer SortData = DataSort.SortSenGroup(qcAnswer, cinfo);
                listElaps.Add(new FuncElapsed("SortSG", tlog_temp.Debug()));

                AnswerResultSG result = new Models.AnswerResultSG()
                {
                    SortData = SortData
                };
                result.timeSpan = tlogTotal.Debug();
                SortData.ElapsedList.AddRange(listElaps);

                if (SortData.MetaList.Count == 0)
                {
                    return(new { result = false, msg = "未找到查询结果!" });
                }
                return(new { result = true, SortData.MetaList });
            }
            catch (System.Exception ex)
            {
                CBase.Log.Logger.Error(ex);
                return(new { result = false, msg = ex.ToString() });
            }
        }
Esempio n. 2
0
 public ColumnInfo(string name, MySqlDbType type, long length, string sqlType, DataSort orderby, bool isNullable, bool isIdentity, bool isClustered, bool isPrimaryKey)
 {
     _name         = name;
     _type         = type;
     _length       = length;
     _sqlType      = sqlType;
     _orderby      = orderby;
     _isNullable   = isNullable;
     _isIdentity   = isIdentity;
     _isClustered  = isClustered;
     _isPrimaryKey = isPrimaryKey;
 }
Esempio n. 3
0
 public ColumnInfo(string name, NpgsqlDbType type, long length, string sqlType, string csType, DataSort orderby, bool isNullable, bool isIdentity, bool isClustered, bool isPrimaryKey, int attndims, int attnum)
 {
     _name         = name;
     _type         = type;
     _length       = length;
     _sqlType      = sqlType;
     _csType       = csType;
     _orderby      = orderby;
     _isNullable   = isNullable;
     _isIdentity   = isIdentity;
     _isClustered  = isClustered;
     _isPrimaryKey = isPrimaryKey;
     _attndims     = attndims;
     _attnum       = attnum;
 }
Esempio n. 4
0
        public override void Read()
        {
            Offset     = _worldPacket.ReadUInt32();
            Auctioneer = _worldPacket.ReadPackedGuid();
            MinLevel   = _worldPacket.ReadUInt8();
            MaxLevel   = _worldPacket.ReadUInt8();
            Quality    = _worldPacket.ReadUInt32();
            SortCount  = _worldPacket.ReadUInt8();
            KnownPets  = new Array <byte>(_worldPacket.ReadInt32());
            for (int i = 0; i < KnownPets.Capacity; ++i)
            {
                KnownPets[i] = _worldPacket.ReadUInt8();
            }

            Name         = _worldPacket.ReadString(_worldPacket.ReadBits <uint>(8));
            ClassFilters = new Array <ClassFilter>(_worldPacket.ReadBits <int>(3));
            OnlyUsable   = _worldPacket.HasBit();
            ExactMatch   = _worldPacket.HasBit();

            for (int i = 0; i < ClassFilters.Capacity; ++i)
            {
                var classFilter = new ClassFilter();
                classFilter.ItemClass       = _worldPacket.ReadInt32();
                classFilter.SubClassFilters = new Array <ClassFilter.SubClassFilter>(_worldPacket.ReadBits <int>(5));
                for (int x = 0; x < classFilter.SubClassFilters.Capacity; ++x)
                {
                    ClassFilter.SubClassFilter subClassFilter;
                    subClassFilter.ItemSubclass    = _worldPacket.ReadInt32();
                    subClassFilter.InvTypeMask     = _worldPacket.ReadUInt32();
                    classFilter.SubClassFilters[x] = subClassFilter;
                }
                ClassFilters[i] = classFilter;
            }

            _worldPacket.Skip(4); // DataSize = (SortCount * 2)
            for (int i = 0; i < SortCount; i++)
            {
                AuctionListItems.Sort sort;
                sort.Type      = _worldPacket.ReadUInt8();
                sort.Direction = _worldPacket.ReadUInt8();
                DataSort.Add(sort);
            }
        }
Esempio n. 5
0
        //[System.Web.Http.HttpGet]
        //[ValidateInput(false)]
        //[System.Web.Http.Route("GetFAQData")]
        private async Task <Object> GetFAQData(string q, string domain = null)
        {
            try
            {
                List <FuncElapsed>     listElaps = new List <FuncElapsed>();
                CBase.Log.TimeWatchLog tlogTotal = new CBase.Log.TimeWatchLog();
                CBase.Log.TimeWatchLog tlog_temp = new CBase.Log.TimeWatchLog();
                if (string.IsNullOrEmpty(q))
                {
                    return(null);
                }
                QueryContainer <CMFAQ>                 faq      = null;
                QueryContainer <CMFAQ_NET>             faq_net  = null;
                List <Task <QueryContainer <CMFAQ> > > tFaqList = null;
                Task <QueryContainer <CMFAQ_NET> >     tFaq_net = null;

                //获取意图识别
                tlog_temp.Start();
                var tasks = new List <Task>();
                tFaqList = GetFAQTask(q, timeout, domain);
                tFaq_net = TimedTask.CallWithTimeoutAsync(timeout, () => new Faq_net(domain).Get(q, domain), q, null);
                tasks.AddRange(tFaqList);
                tasks.Add(tFaq_net);
                await Task.WhenAll(tasks.ToArray());

                faq     = GetFAQAll(tFaqList);
                faq_net = tFaq_net == null ? null : tFaq_net.Result;
                tlog_temp.Start();
                QueryDataContainer SortData = DataSort.SortKB(faq, faq_net, null, null);

                SortData.ElapsedList.AddRange(listElaps);
                if (SortData.MetaList.Count == 0)
                {
                    return(new { result = false, msg = "未找到查询结果!" });
                }
                return(new { result = true, SortData.MetaList });
            }
            catch (System.Exception ex)
            {
                CBase.Log.Logger.Error(ex);
                return(new { result = false, msg = ex.ToString() });
            }
        }
Esempio n. 6
0
        public async Task <ActionResult <IResult> > GetListProductAttributeValue(int id, [FromQuery] DataHelperModel dataHelper)
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                if (!ModelState.IsValid)
                {
                    result.Status     = Status.Fail;
                    result.StatusCode = HttpStatusCode.BadRequest;
                    return(StatusCode((int)result.StatusCode, result));
                }
                var attribute = from productAttributeValue in context.ProductAttributeValues
                                join attributeName in context.ProductAttributes
                                on productAttributeValue.AttributeID equals attributeName.AttributeID
                                into attributes
                                from attributeName in attributes.DefaultIfEmpty()
                                where productAttributeValue.ProductID == id
                                orderby productAttributeValue.ID descending
                                select new ProductAttributeValueViewModel {
                    ID = productAttributeValue.ID, AttributeID = productAttributeValue.AttributeID, AttributeName = attributeName.AttributeName, ProductID = productAttributeValue.ProductID, Value = productAttributeValue.Value
                };
                if (attribute.Count() == 0)
                {
                    result.Status     = Status.Fail;
                    result.StatusCode = HttpStatusCode.BadRequest;
                    result.Message    = "Attributes do not exist for the product.";
                    return(StatusCode((int)result.StatusCode, result));
                }
                var list = attribute;
                list = DataSort.SortBy(list, dataHelper.SortColumn, dataHelper.SortOrder);
                var resultCount = list.Count();
                var pagedList   = DataCount.Page(list, dataHelper.PageNumber, dataHelper.PageSize);
                var resultList  = await pagedList.ToListAsync();

                ResultModel resultModel = new ResultModel();
                resultModel.ProductAttributeValueResult = resultList;
                resultModel.TotalCount = resultCount;
                if (resultList.Count == 0)
                {
                    result.Status     = Status.Fail;
                    result.StatusCode = HttpStatusCode.BadRequest;
                    result.Message    = "No records present.";
                    return(StatusCode((int)result.StatusCode, result));
                }

                result.Status     = Status.Success;
                result.StatusCode = HttpStatusCode.OK;
                result.Body       = resultModel;
                return(StatusCode((int)result.StatusCode, result));
            }
            catch (Exception e)
            {
                result.Status     = Status.Error;
                result.Message    = e.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;

                return(StatusCode((int)result.StatusCode, result));
            }
        }
Esempio n. 7
0
        public async Task <ActionResult <IResult> > Listing([FromQuery] DataHelperModel dataHelper)
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var listQuery = from product in context.Products
                                join createdUser in context.Login
                                on product.CreatedBy equals createdUser.UserID
                                into createname
                                from createUserName in createname.DefaultIfEmpty()
                                join modifiedUser in context.Login
                                on product.ModifiedBy equals modifiedUser.UserID
                                into modifyname
                                from modifyUserName in modifyname.DefaultIfEmpty()
                                join categoryname in context.Categories
                                on product.CategoryID equals categoryname.CategoryID
                                into namecategory
                                from categoryName in namecategory.DefaultIfEmpty()
                                where product.IsDeleted != true
                                orderby product.CreatedDate descending
                                select new ProductViewModel {
                    ProductName = product.ProductName, ProductID = product.ProductID, ShortDescription = product.ShortDescription, CategoryID = product.CategoryID, CategoryName = categoryName.CategoryName, IsActive = product.IsActive, CreatedBy = product.CreatedBy, CreatedDate = product.CreatedDate, CreatedUser = createUserName.Username, Price = product.Price, QuantityInStock = product.QuantityInStock, VisibleEndDate = product.VisibleEndDate, AllowCustomerReviews = product.AllowCustomerReviews, DiscountPercent = product.DiscountPercent, VisibleStartDate = product.VisibleStartDate, IsDiscounted = product.IsDiscounted, LongDescription = product.LongDescription, MarkNew = product.MarkNew, ModelNumber = product.ModelNumber, ModifiedBy = product.ModifiedBy, ModifiedDate = product.ModifiedDate, ModifiedUser = modifyUserName.Username, OnHomePage = product.OnHomePage, ShipingEnabled = product.ShipingEnabled, ShippingCharges = product.ShippingCharges, Tax = product.Tax, TaxExempted = product.TaxExempted, QuantityType = product.QuantityType
                };
                if (dataHelper.Search != null)
                {
                    listQuery = listQuery.Where(x => x.ProductName.Contains(dataHelper.Search) || x.ShortDescription.Contains(dataHelper.Search) || x.LongDescription.Contains(dataHelper.Search));
                }
                var list = listQuery;
                list = DataSort.SortBy(list, dataHelper.SortColumn, dataHelper.SortOrder);
                var resultCount = list.Count();
                var pagedList   = DataCount.Page(list, dataHelper.PageNumber, dataHelper.PageSize);
                var resultList  = await pagedList.ToListAsync();

                ResultModel resultModel = new ResultModel();
                resultModel.ProductResult = resultList;
                resultModel.TotalCount    = resultCount;
                if (resultList.Count == 0)
                {
                    result.Status     = Status.Fail;
                    result.StatusCode = HttpStatusCode.BadRequest;
                    result.Message    = "No records present.";
                    return(StatusCode((int)result.StatusCode, result));
                }

                result.Status     = Status.Success;
                result.StatusCode = HttpStatusCode.OK;
                result.Body       = resultModel;
                return(StatusCode((int)result.StatusCode, result));
            }
            catch (Exception e)
            {
                result.Status     = Status.Error;
                result.Message    = e.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;

                return(StatusCode((int)result.StatusCode, result));
            }
        }
Esempio n. 8
0
        //[System.Web.Http.HttpGet]
        //[ValidateInput(false)]
        //[System.Web.Http.Route("GetKBData")]
        private async Task <Object> GetKBData(string q, string domain = null)
        {
            try
            {
                List <FuncElapsed>     listElaps = new List <FuncElapsed>();
                CBase.Log.TimeWatchLog tlogTotal = new CBase.Log.TimeWatchLog();
                CBase.Log.TimeWatchLog tlog_temp = new CBase.Log.TimeWatchLog();
                if (string.IsNullOrEmpty(q))
                {
                    return(null);
                }
                //根据意图分析结果,提供准确答案与资源导航、问答对
                Dictionary <string, QueryContainer <CMKArea> >         navContent = null;
                Task <Dictionary <string, QueryContainer <CMKArea> > > tNavi      = null;
                ClientInfo cinfo = new ClientInfo()
                {
                    UserName = CommonHelper.GetUserName(),
                    IP       = CommonHelper.GetClientIP()
                };
                //获取意图识别
                tlog_temp.Start();
                Domain.Intent intent = new Answer(domain).GetIntent(q, domain);
                listElaps.Add(new FuncElapsed("GetIntent", tlog_temp.Debug()));

                //内容收集 意图是否识别收集用于数据分析 1未识别 2已识别
                ContentLogType collectType = ContentLogType.已识别;
                if (intent != null && intent.qt_parsed_rst == null)
                {
                    collectType = ContentLogType.未识别;
                }
                var client = new CollectorInterfaceClient();
                Task.Run <bool>(() =>
                {
                    return(client.SetConfused(new CollectorEntity()
                    {
                        Content = intent.RawInput,
                        Type = (int)collectType,
                        IP = cinfo.IP,
                        UserID = cinfo.UserName
                    }));
                });

                cinfo.Type = ContentLogType.知识库超时;
                tNavi      = TimedTask.CallWithTimeoutAsync(timeout, () => new KB(domain).Get(intent), q, cinfo);
                await Task.WhenAll(tNavi);

                navContent = tNavi == null ? null : tNavi.Result;
                tlog_temp.Start();
                cinfo.Type = ContentLogType.问题排序超时;
                QueryDataContainer SortData = DataSort.SortKB(null, null, navContent, cinfo);
                listElaps.Add(new FuncElapsed("SortKB", tlog_temp.Debug()));
                AnswerResultKB result = new Models.AnswerResultKB()
                {
                    intent   = intent,
                    SortData = SortData
                };
                result.timeSpan = tlogTotal.Debug();
                SortData.ElapsedList.AddRange(listElaps);
                if (SortData.MetaList.Count == 0)
                {
                    return(new { result = false, msg = "未找到查询结果!" });
                }
                for (int i = 0; i < SortData.MetaList.Count; i++)
                {
                    SortData.MetaList[i].QExp = null;
                }
                return(new { result = true, SortData.MetaList });
            }
            catch (System.Exception ex)
            {
                CBase.Log.Logger.Error(ex);
                return(new { result = false, msg = ex.ToString() });
            }
        }
Esempio n. 9
0
        public async Task <Object> GetAnswer(string q, string appid, string aid)
        {
            try
            {
                CBase.Log.TimeWatchLog twTotal = new CBase.Log.TimeWatchLog();
                if (string.IsNullOrEmpty(q))
                {
                    return new { result = false, msg = "问题不能为空!" }
                }
                ;

                //根据意图分析结果,提供准确答案与资源导航、问答对
                Dictionary <string, QueryContainer <CMKArea> > navContent = null;
                QueryContainer <CMFAQ>     faq     = null;
                QueryContainer <CMFAQ_NET> faq_net = null;

                Task <Dictionary <string, QueryContainer <CMKArea> > > tNavi = null;
                List <Task <QueryContainer <CMFAQ> > > tFaqList = null;
                Task <QueryContainer <CMFAQ_NET> >     tFaq_net = null;

                ClientInfo cinfo = new ClientInfo()
                {
                    UserName = CommonHelper.GetUserName(),
                    IP       = CommonHelper.GetClientIP()
                };

                //获取意图识别
                Domain.Intent intent = new Answer().GetIntent(q);

                //内容收集 意图是否识别收集用于数据分析 1未识别 2已识别
                ContentLogType collectType = ContentLogType.已识别;
                if (intent != null && intent.qt_parsed_rst == null)
                {
                    collectType = ContentLogType.未识别;
                }
                var client = new CollectorInterfaceClient();
                Task.Run <bool>(() =>
                {
                    return(client.SetConfused(new CollectorEntity()
                    {
                        Content = intent.RawInput,
                        Type = (int)collectType,
                        IP = cinfo.IP,
                        UserID = cinfo.UserName
                    }));
                });
                List <string> filterDomain = new List <string>();
                QueryConfig   qconfig      = new QueryConfig().GetQueryConfig();
                if (qconfig != null && qconfig.DomainMap.ContainsKey("default"))
                {
                    filterDomain = qconfig.DomainMap["default"].FAQ;
                }

                var tasks = new List <Task>();
                cinfo.Type = ContentLogType.知识库超时;
                tNavi      = TimedTask.CallWithTimeoutAsync(timeout, () => new KB().Get(intent), q, cinfo);

                cinfo.Type = ContentLogType.问答集超时;
                tFaqList   = GetFAQTask(q, timeout, filterDomain);

                cinfo.Type = ContentLogType.用户问答集超时;
                tFaq_net   = TimedTask.CallWithTimeoutAsync(timeout, () => new Faq_net().Get(q), q, cinfo);
                tasks.Add(tNavi);

                tasks.AddRange(tFaqList);

                tasks.Add(tFaq_net);
                await Task.WhenAll(tasks.ToArray());

                navContent = tNavi == null ? null : tNavi.Result;

                faq = GetFAQAll(tFaqList);

                //如果faq和faqnet有内容就不返回知识库内容
                faq_net = tFaq_net == null ? null : tFaq_net.Result;
                if ((faq != null && faq.Total > 0) || (faq_net != null && faq_net.Total > 0))
                {
                    navContent = null;
                }

                cinfo.Type = ContentLogType.问题排序超时;
                QueryDataContainer SortData = DataSort.SortKB(faq, faq_net, navContent, cinfo);
                twTotal.Write("GetAnswer");
                if (SortData.MetaList.Count == 0)
                {
                    return(new { result = false, msg = "未找到查询结果!" });
                }
                return(new { result = true, SortData.MetaList });
            }
            catch (System.Exception ex)
            {
                CBase.Log.Logger.Error(ex);
                return(new { result = false, msg = ex.ToString() });
            }
        }
Esempio n. 10
0
        public async Task <ActionResult <IResult> > Listing([FromQuery] DataHelperModel dataHelper, bool getAll)
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var listQuery = from attribute in context.ProductAttributes
                                join createdUser in context.Login
                                on attribute.CreatedBy equals createdUser.UserID
                                into createname
                                from createdUsername in createname.DefaultIfEmpty()
                                let createdByUser = createdUsername.Username
                                                    join modifiedUser in context.Login
                                                    on attribute.ModifiedBy equals modifiedUser.UserID
                                                    into modifyname
                                                    from modifiedUsername in modifyname.DefaultIfEmpty()
                                                    let modifiedByUser = modifiedUsername.Username
                                                                         join Values in context.ProductAttributeValues
                                                                         on attribute.AttributeID equals Values.AttributeID
                                                                         into attributeValuesCount
                                                                         from attributeValues in attributeValuesCount.DefaultIfEmpty()
                                                                         group new { attributeValues, attribute, createdByUser, modifiedByUser } by
                new { attribute, createdByUser, modifiedByUser } into valuesCount
                    select new ProductAttributeViewModel
                {
                    AttributeID             = valuesCount.Key.attribute.AttributeID,
                    AttributeName           = valuesCount.Key.attribute.AttributeName,
                    CreatedBy               = valuesCount.Key.attribute.CreatedBy,
                    AssociatedProductValues = valuesCount.Where(x => x.attributeValues != null ? x.attributeValues.AttributeID == x.attribute.AttributeID : false).Count(),
                    CreatedDate             = valuesCount.Key.attribute.CreatedDate,
                    ModifiedBy              = valuesCount.Key.attribute.ModifiedBy,
                    ModifiedDate            = valuesCount.Key.attribute.ModifiedDate,
                    CreatedUser             = valuesCount.Key.createdByUser,
                    ModifiedUser            = valuesCount.Key.modifiedByUser
                };
                if (!getAll)
                {
                    if (dataHelper.Search != null)
                    {
                        listQuery = listQuery.Where(x => x.AttributeName.Contains(dataHelper.Search));
                    }
                    var list = listQuery;
                    list = DataSort.SortBy(list, dataHelper.SortColumn, dataHelper.SortOrder);
                    var resultCount = list.Count();
                    var pagedList   = DataCount.Page(list, dataHelper.PageNumber, dataHelper.PageSize);
                    var resultList  = await pagedList.ToListAsync();

                    ResultModel resultModel = new ResultModel();
                    resultModel.ProductAttributeResult = resultList;
                    resultModel.TotalCount             = resultCount;
                    if (resultList.Count == 0)
                    {
                        result.Status     = Status.Fail;
                        result.StatusCode = HttpStatusCode.BadRequest;
                        result.Message    = "No records present.";
                        return(StatusCode((int)result.StatusCode, result));
                    }

                    result.Status     = Status.Success;
                    result.StatusCode = HttpStatusCode.OK;
                    result.Body       = resultModel;
                    return(StatusCode((int)result.StatusCode, result));
                }
                else
                {
                    listQuery = listQuery.OrderBy(x => x.AttributeName);
                    var attributeList = await listQuery.ToListAsync();

                    result.Body       = attributeList;
                    result.Status     = Status.Success;
                    result.StatusCode = HttpStatusCode.OK;
                    return(StatusCode((int)result.StatusCode, result));
                }
            }
            catch (Exception e)
            {
                result.Status     = Status.Error;
                result.Message    = e.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;

                return(StatusCode((int)result.StatusCode, result));
            }
        }
        public async Task <ActionResult <IResult> > GetUserList([FromQuery] DataHelperModel dataHelper)
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var userObj = from user in context.Login
                              join role in context.AssignedRolesTable
                              on user.UserID equals role.UserID
                              into assignedRoles
                              from userRole in assignedRoles.DefaultIfEmpty()
                              group new { user } by
                new { user, assignedRoles } into userDetail
                    select new UserViewModel
                {
                    UserID       = userDetail.Key.user.UserID,
                    EmailID      = userDetail.Key.user.EmailID,
                    FirstName    = userDetail.Key.user.FirstName,
                    LastName     = userDetail.Key.user.LastName,
                    Username     = userDetail.Key.user.Username,
                    RoleID       = userDetail.Key.assignedRoles.Where(x => x.UserID == userDetail.Key.user.UserID).Select(x => x.RoleID).ToArray(),
                    ImageContent = null
                };
                if (dataHelper.Search != null)
                {
                    userObj = userObj.Where(x => x.Username.Contains(dataHelper.Search) || x.EmailID.Contains(dataHelper.Search));
                }
                var userList = userObj.Where(x => !x.RoleID.Contains(1)).Select(x => x);
                if (userObj.Count() == 0)
                {
                    result.Status     = Status.Fail;
                    result.StatusCode = HttpStatusCode.BadRequest;
                    result.Message    = "noUserPresent";
                    return(StatusCode((int)result.StatusCode, result));
                }
                var list = userList;
                list = DataSort.SortBy(list, dataHelper.SortColumn, dataHelper.SortOrder);
                var         resultCount = list.Count();
                var         pagedList   = DataCount.Page(list, dataHelper.PageNumber, dataHelper.PageSize);
                var         resultList  = pagedList.ToList();
                ResultModel resultModel = new ResultModel();
                resultModel.UserResult = resultList;
                resultModel.TotalCount = resultCount;

                result.Status     = Status.Success;
                result.StatusCode = HttpStatusCode.OK;
                result.Body       = resultModel;
                return(StatusCode((int)result.StatusCode, result));
            }
            catch (Exception e)
            {
                result.Status     = Status.Error;
                result.Message    = e.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;

                return(StatusCode((int)result.StatusCode, result));
            }
        }
Esempio n. 12
0
        public async Task <ActionResult <IResult> > GetAssociatedProducts(int id, [FromQuery] DataHelperModel dataHelper)
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                if (id != 0)
                {
                    var product = from products in context.Products
                                  where products.CategoryID == id &&
                                  products.IsDeleted != true
                                  orderby products.ProductName
                                  select new ProductViewModel {
                        ProductName = products.ProductName, ProductID = products.ProductID, ShortDescription = products.ShortDescription, CategoryID = products.CategoryID, CategoryName = "", IsActive = products.IsActive, CreatedBy = products.CreatedBy, CreatedDate = products.CreatedDate, CreatedUser = "", Price = products.Price, QuantityInStock = products.QuantityInStock, VisibleEndDate = products.VisibleEndDate, AllowCustomerReviews = products.AllowCustomerReviews, DiscountPercent = products.DiscountPercent, VisibleStartDate = products.VisibleStartDate, IsDiscounted = products.IsDiscounted, LongDescription = products.LongDescription, MarkNew = products.MarkNew, ModelNumber = products.ModelNumber, ModifiedBy = products.ModifiedBy, ModifiedDate = products.ModifiedDate, ModifiedUser = "", OnHomePage = products.OnHomePage, ShipingEnabled = products.ShipingEnabled, ShippingCharges = products.ShippingCharges, Tax = products.Tax, TaxExempted = products.TaxExempted, QuantityType = products.QuantityType
                    };
                    if (product.Count() == 0)
                    {
                        result.Status     = Status.Fail;
                        result.StatusCode = HttpStatusCode.BadRequest;
                        result.Message    = "Products do not exist for the category.";
                        return(StatusCode((int)result.StatusCode, result));
                    }
                    var list = product;
                    list = DataSort.SortBy(list, dataHelper.SortColumn, dataHelper.SortOrder);
                    var resultCount = list.Count();
                    var pagedList   = DataCount.Page(list, dataHelper.PageNumber, dataHelper.PageSize);
                    var resultList  = await pagedList.ToListAsync();

                    ResultModel resultModel = new ResultModel();
                    resultModel.ProductResult = resultList;
                    resultModel.TotalCount    = resultCount;
                    if (resultList.Count == 0)
                    {
                        result.Status     = Status.Fail;
                        result.StatusCode = HttpStatusCode.BadRequest;
                        result.Message    = "No records present.";
                        return(StatusCode((int)result.StatusCode, result));
                    }

                    result.Status     = Status.Success;
                    result.StatusCode = HttpStatusCode.OK;
                    result.Body       = resultModel;
                    return(StatusCode((int)result.StatusCode, result));
                }

                result.Status     = Status.Fail;
                result.StatusCode = HttpStatusCode.BadRequest;
                result.Message    = "ID entered is null.";
                return(StatusCode((int)result.StatusCode, result));
            }
            catch (Exception e)
            {
                result.Status     = Status.Error;
                result.Message    = e.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;

                return(StatusCode((int)result.StatusCode, result));
            }
        }
Esempio n. 13
0
        public async Task <ActionResult <IResult> > Listing([FromQuery] DataHelperModel dataHelper, bool getAllParent, bool getAll)
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var listQuery = from category in context.Categories
                                join createdUser in context.Login
                                on category.CreatedBy equals createdUser.UserID
                                into createdUserName
                                from createdUser in createdUserName.DefaultIfEmpty()
                                let createdByUser = createdUser.Username
                                                    join modifiedUser in context.Login
                                                    on category.ModifiedBy equals modifiedUser.UserID
                                                    into modifiedUserName
                                                    from modifiedUser in modifiedUserName.DefaultIfEmpty()
                                                    let modifiedByUser = modifiedUser.Username
                                                                         join products in context.Products
                                                                         on category.CategoryID equals products.CategoryID
                                                                         into productCount
                                                                         from productValueCount in productCount.DefaultIfEmpty()
                                                                         where category.IsDeleted != true
                                                                         orderby category.CreatedDate descending
                                                                         group new { category, productValueCount, createdByUser, modifiedByUser } by
                new { category, createdByUser, modifiedByUser } into categories
                    select new CategoryViewModel
                {
                    Name               = categories.Key.category.CategoryName,
                    CreatedBy          = categories.Key.category.CreatedBy,
                    ID                 = categories.Key.category.CategoryID,
                    IsActive           = categories.Key.category.IsActive,
                    CreatedDate        = categories.Key.category.CreatedDate,
                    Description        = categories.Key.category.CategoryDescription,
                    ModifiedBy         = categories.Key.category.ModifiedBy,
                    ModifiedDate       = categories.Key.category.ModifiedDate,
                    CreatedUser        = categories.Key.createdByUser,
                    ModifiedUser       = categories.Key.modifiedByUser,
                    Parent             = categories.Key.category.ParentCategory,
                    Child              = categories.Key.category.ChildCategory,
                    ImageContent       = "",
                    AssociatedProducts = categories.Where(x => x.productValueCount != null ? x.category.CategoryID == x.category.CategoryID : false).Count()
                };
                if (getAllParent != true)
                {
                    if (dataHelper.Search != null)
                    {
                        listQuery = listQuery.Where(x => x.Name.Contains(dataHelper.Search) || x.Description.Contains(dataHelper.Search));
                    }
                    var list = listQuery;
                    list = DataSort.SortBy(list, dataHelper.SortColumn, dataHelper.SortOrder);
                    var resultCount = list.Count();
                    var pagedList   = DataCount.Page(list, dataHelper.PageNumber, dataHelper.PageSize);
                    var resultList  = await pagedList.ToListAsync();

                    ResultModel resultModel = new ResultModel();
                    resultModel.CategoryResult = resultList;
                    resultModel.TotalCount     = resultCount;
                    if (resultList.Count == 0)
                    {
                        result.Status     = Status.Fail;
                        result.StatusCode = HttpStatusCode.BadRequest;
                        result.Message    = "No records present.";
                        return(StatusCode((int)result.StatusCode, result));
                    }
                    result.Status     = Status.Success;
                    result.StatusCode = HttpStatusCode.OK;
                    result.Body       = resultModel;
                    return(StatusCode((int)result.StatusCode, result));
                }
                else
                {
                    if (!getAll)
                    {
                        listQuery = listQuery.Where(x => x.Child == null).OrderBy(x => x.Name);
                        var categoryList = await listQuery.ToListAsync();

                        result.Body       = categoryList;
                        result.Status     = Status.Success;
                        result.StatusCode = HttpStatusCode.OK;
                        return(StatusCode((int)result.StatusCode, result));
                    }
                    else
                    {
                        listQuery = listQuery.OrderBy(x => x.Name);
                        var categoryList = await listQuery.ToListAsync();

                        result.StatusCode = HttpStatusCode.OK;
                        result.Body       = categoryList;
                        result.Status     = Status.Success;
                        return(StatusCode((int)result.StatusCode, result));
                    }
                }
            }
            catch (Exception e)
            {
                result.Status     = Status.Error;
                result.Message    = e.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;

                return(StatusCode((int)result.StatusCode, result));
            }
        }