Esempio n. 1
0
        public IHttpActionResult GetClassified(string classifiedId)
        {
            ClaimsPrincipal principal = (ClaimsPrincipal)Request.GetRequestContext().Principal;
            var             userId    = principal.Identity.GetUserId();

            try
            {
                Classified classified = new Classified(Encoding.UTF8.GetString(Convert.FromBase64String(classifiedId)));
                classified.ValidOrBreak();

                classified.oCategory = new ClsGrpSimple(classified.Category);
                classified.CheckOwnership(userId);

                var newJsWidget = new UserJustShareWidget(classified);
                if (userId != null)
                {
                    newJsWidget.LoadMessages(userId);
                }

                return(Ok(
                           new
                {
                    justShareDetails = classified,
                    justShareWidget = newJsWidget
                }));
            }
            catch (InvalidModelException e)
            {
                return(BadRequest());
            }
            catch (Exception e)
            {
                return(BadRequest());
            }
        }
Esempio n. 2
0
        public async Task <IHttpActionResult> GetFiltered(NNClassifiedsFilter filter)
        {
            ClaimsPrincipal             principal      = (ClaimsPrincipal)Request.GetRequestContext().Principal;
            Dictionary <string, object> infoParameters = new Dictionary <string, object>();
            List <Classified>           oClassifieds   = new List <Classified>();
            Classified oClassified;
            Pagination pagination = new Pagination();
            int        nPages     = 0;

            // No filters selected, returns right away
            if (filter.Categories.ToList().Count == 0)
            {
                return(Ok(new
                {
                    justShareGridData = new
                    {
                        items = oClassifieds,
                        pagination
                    }
                }));
            }

            Task <int> tPagination = pagination.GetPagination(filter);

            infoParameters.Add("Page", filter.Page);
            infoParameters.Add("PageSize", filter.PageSize);
            infoParameters.Add("Category", string.Join("|", filter.Categories));
            infoParameters.Add("Type", filter.Type);
            infoParameters.Add("Word", filter.Word);
            DataTable oClassDB = DBConn.ExecuteCommand("sp_Classifieds_GetFiltered", infoParameters).Tables[0];

            if (oClassDB.Rows.Count > 0)
            {
                foreach (DataRow row in oClassDB.Rows)
                {
                    oClassified = new Classified();
                    oClassified.MapFromTableRow(row);

                    if (oClassified.isValid)
                    {
                        oClassified.oAuthor   = new UserSimple(oClassified.CreatedBy);
                        oClassified.oCategory = new ClsGrpSimple(oClassified.Category);
                        oClassified.CheckOwnership(principal.Identity.GetUserId());
                        oClassifieds.Add(oClassified);
                    }
                }
            }

            // Wait for the pagination
            nPages = await tPagination;

            return(Ok(new
            {
                justShareGridData = new
                {
                    items = oClassifieds,
                    pagination
                }
            }));
        }