示例#1
0
        public async Task <EstateResultDto> GetMyProducts(ProductArguments productArguments)
        {
            var result = await Service.Post <EstateResultDto, NullServiceObject>(GenerateUrl("GetMyEstates"), productArguments);

            await HandleResponseShowError(result);

            return(result?.Response?.Data);
        }
        private void SetFiltersParams(ProductArguments productArguments)
        {
            //Clear filter before set new param
            productArguments.ProductCode   = null;
            productArguments.Area          = null;
            productArguments.ListingTypeId = null;
            productArguments.Type          = null;
            productArguments.PriceRange    = null;

            //Set new TownId param
            productArguments.TownId = locationList.SelectedItem != null ? (locationList.SelectedItem as TownViewModel)?.Id : default(long?);
        }
示例#3
0
 private void SetFiltersParams(ProductArguments productArguments)
 {
     productArguments.ProductCode   = ProductCodeEntry.Text;
     productArguments.TownId        = TownCombobox.SelectedItem != null ? (TownCombobox.SelectedItem as TownViewModel)?.Id : default(long?);
     productArguments.ListingTypeId = ListingTypeCombobox.SelectedItem != null ? (ListingTypeCombobox.SelectedItem as ListingTypeViewModel)?.Id : default(long?);
     productArguments.Area          = AreaCombobox.SelectedItem != null ? (AreaCombobox.SelectedItem as AreaViewModel)?.AreaRange : null;
     productArguments.Type          = TypeCombobox.SelectedItem != null ? (TypeCombobox.SelectedItem as TypeViewModel)?.Type : default(int?);
     if (productArguments.Type == 0)
     {
         productArguments.PriceRange = SalePriceCombobox.SelectedItem != null ? (SalePriceCombobox.SelectedItem as PriceViewModel)?.PriceRange : null;
     }
     else if (productArguments.Type == 1)
     {
         productArguments.PriceRange = RentPriceCombobox.SelectedItem != null ? (RentPriceCombobox.SelectedItem as PriceViewModel)?.PriceRange : null;
     }
 }
 private async Task <EstateResultDto> GetProducts(ProductArguments productArguments)
 {
     return(await ProductService.GetProducts(productArguments));
 }
示例#5
0
        public async Task <ActionResult> addProduct(string QualificationShortName, string AssessmentIndentifier,
                                                    string AssessmentName, int AssessmentVersion, string ComponentIdentifier, string ComponentName, int ComponentVersion,
                                                    string SessionIdentifier, string Name, string Timeframe,
                                                    string StartDate, string StartDatePart, string EndDate,
                                                    string QuestionPaperIdentifier, string Barcode, string QuestionPaperPartName, string MarkingType, string NameQP, int PageCount, string SyllabusCode)
        {
            string markingTypeCreated = "MFI";
            string RMKey1             = WebServiceDetails.RMKey;

            AssessmentStructureWS.AssessmentStructureWS test = new AssessmentStructureWS.AssessmentStructureWS();

            ProductArguments productArguments = new ProductArguments();
            ProductReceipt   productReceipt   = new ProductReceipt();

            ProductArgumentsProduct       productArgumentsProduct       = new ProductArgumentsProduct();
            ProductArgumentsSession       productArgumentsSession       = new ProductArgumentsSession();
            ProductArgumentsExam          productArgumentsExam          = new ProductArgumentsExam();
            ProductArgumentsQuestionPaper productArgumentsQuestionPaper = new ProductArgumentsQuestionPaper();


            productArgumentsProduct.BusinessStreamIndentifier = WebServiceDetails.BusinessStreamIndentifier;
            productArgumentsProduct.QualificationShortName    = QualificationShortName;
            productArgumentsProduct.AssessmentIndentifier     = AssessmentIndentifier;
            productArgumentsProduct.AssessmentName            = AssessmentName;
            productArgumentsProduct.AssessmentVersion         = AssessmentVersion;
            productArgumentsProduct.ComponentIdentifier       = ComponentIdentifier;
            productArgumentsProduct.ComponentName             = ComponentName;
            productArgumentsProduct.ComponentVersion          = ComponentVersion;

            productArgumentsSession.SessionIdentifier = SessionIdentifier;
            productArgumentsSession.Name      = Name;
            productArgumentsSession.Timeframe = Timeframe;

            productArgumentsExam.StartDate     = Convert.ToDateTime(StartDate);
            productArgumentsExam.StartDatePart = StartDatePart;
            productArgumentsExam.EndDate       = Convert.ToDateTime(EndDate);


            productArgumentsQuestionPaper.QuestionPaperIdentifier = QuestionPaperIdentifier;
            productArgumentsQuestionPaper.Barcode = Barcode;
            productArgumentsQuestionPaper.QuestionPaperPartName = QuestionPaperPartName;
            productArgumentsQuestionPaper.MarkingType           = markingTypeCreated;
            productArgumentsQuestionPaper.Name         = NameQP;
            productArgumentsQuestionPaper.PageCount    = PageCount;
            productArgumentsQuestionPaper.SyllabusCode = SyllabusCode;

            productArguments.Product       = productArgumentsProduct;
            productArguments.Session       = productArgumentsSession;
            productArguments.Exam          = productArgumentsExam;
            productArguments.QuestionPaper = productArgumentsQuestionPaper;

            productReceipt = test.Product(RMKey1, productArguments);

            if (productReceipt.Success)
            {
                AddCenterCandidate(SessionIdentifier, AssessmentIndentifier, AssessmentVersion, ComponentIdentifier, ComponentVersion, QuestionPaperIdentifier, QuestionPaperPartName);

                using (var db = new RM_GDEContext())
                {
                    db.Product.Add(new Product
                    {
                        QualificationShortName = QualificationShortName,
                        AssessmentIndentifier  = AssessmentIndentifier,
                        AssessmentName         = AssessmentName,
                        AssessmentVersion      = AssessmentVersion,
                        ComponentIdentifier    = ComponentIdentifier,
                        ComponentName          = ComponentName,
                        ComponentVersion       = ComponentVersion
                    });

                    db.QuestionPaper.Add(new QuestionPaper
                    {
                        QuestionPaperIdentifier = QuestionPaperIdentifier,
                        Barcode = Barcode,
                        QuestionPaperPartName = QuestionPaperPartName,
                        MarkingType           = markingTypeCreated,
                        SyllabusCode          = SyllabusCode,
                        CreatedDate           = DateTime.Now

                                                //Add to Table later
                                                //Name = NameQP,
                                                //PageCount = PageCount,
                    });

                    db.Session.Add(new Session
                    {
                        SessionIdentifier = SessionIdentifier,
                        Name      = Name,
                        Timeframe = Timeframe
                    });

                    db.Exam.Add(new Exam
                    {
                        StartDate     = Convert.ToDateTime(StartDate),
                        StartDatePart = StartDatePart,
                        EndDate       = Convert.ToDateTime(EndDate)
                    });

                    await db.SaveChangesAsync();

                    var listOfSessions = db.QuestionPaper.ToList();
                    return(View("Index", listOfSessions));
                }
            }
            return(View("Index"));
        }
示例#6
0
        public async Task <IHttpActionResult> GetMyEstates(ProductArguments productArguments)
        {
            var result = _service.GetAllMyEstates(productArguments);

            return(Ok(RealEstateResponse <EstateResultDto> .Create(result)));
        }
示例#7
0
        public EstateResultDto GetAllMyEstates(ProductArguments productArguments)
        {
            try
            {
                if (productArguments.AccountId == null)
                {
                    return(null);
                }
                var skip       = (productArguments.PageIndex - 1) * productArguments.PageLimit;
                var expression = PredicateBuilder.True <Estate>();
                switch (productArguments.ProductType)
                {
                case ProductType.Expired:
                    var dayAgo = DateTime.Now.AddDays(-90);
                    expression = PredicateBuilder.And(expression, x => dayAgo > x.ModifiedDate);
                    break;

                case ProductType.Deleted:
                    expression = PredicateBuilder.And(expression, x => x.IsDelete != null && x.IsDelete == true);
                    break;

                case ProductType.WillBeExpired:
                    var dayAgo60 = DateTime.Now.AddDays(-60);
                    var dayAgo90 = DateTime.Now.AddDays(-90);
                    expression = PredicateBuilder.And(expression, x => dayAgo90 <= x.ModifiedDate && x.ModifiedDate <= dayAgo60);
                    break;

                default:
                    var day = DateTime.Now.AddDays(-90);
                    expression = PredicateBuilder.And(expression, x => day <= x.ModifiedDate && x.IsDelete == false);
                    break;
                }
                if (!string.IsNullOrEmpty(productArguments.ProductCode))
                {
                    expression = PredicateBuilder.And(expression, x => ((x.EstateCode ?? "").Replace(".", "").Replace("-", "").Replace("_", "").Replace(" ", "").Contains(productArguments.ProductCode.Replace(".", "").Replace("-", "").Replace("_", "").Replace(" ", ""))));
                }
                if (productArguments.TownId.HasValue)
                {
                    expression = PredicateBuilder.And(expression, x => x.TownId == productArguments.TownId.Value);
                }
                if (productArguments.ListingTypeId.HasValue)
                {
                    expression = PredicateBuilder.And(expression, x => x.Estates_TypeId == productArguments.ListingTypeId.Value);
                }

                //if(productArguments.Area != null)
                //    expression = PredicateBuilder.And(expression, x => x.Area <= productArguments.Area.To && x.Area >= productArguments.Area.From);

                if (productArguments.Type == 1 && productArguments.PriceRange != null)
                {
                    expression = PredicateBuilder.And(expression, x => x.RentPrice <= productArguments.PriceRange.To && x.RentPrice >= productArguments.PriceRange.From);
                }
                else if (productArguments.Type == 0 && productArguments.PriceRange != null)
                {
                    expression = PredicateBuilder.And(expression, x => x.SalePrice <= productArguments.PriceRange.To && x.SalePrice >= productArguments.PriceRange.From);
                }


                if (productArguments.AccountId.HasValue)
                {
                    expression = PredicateBuilder.And(expression, x => x.AccountId == productArguments.AccountId.Value);
                }

                var products     = _realEstateEntities.Estates.Where(expression);
                var totalRecords = _realEstateEntities.Estates.Count(expression);
                IOrderedQueryable <Estate> orderQuery;
                switch (productArguments.SortingType)
                {
                case SortingType.RentPriceDescending:
                    orderQuery = products.OrderByDescending(x => x.RentPrice);
                    break;

                case SortingType.RentPriceAscending:
                    orderQuery = products.OrderBy(x => x.RentPrice);
                    break;

                case SortingType.SalePriceDescending:
                    orderQuery = products.OrderByDescending(x => x.SalePrice);
                    break;

                case SortingType.SalePriceAscending:
                    orderQuery = products.OrderBy(x => x.SalePrice);
                    break;

                case SortingType.AreaDescending:
                    orderQuery = products.OrderByDescending(x => x.Area);
                    break;

                case SortingType.AreaAscending:
                    orderQuery = products.OrderBy(x => x.Area);
                    break;

                case SortingType.ProductCodeDescending:
                    orderQuery = products.OrderByDescending(x => x.EstateCode);
                    break;

                case SortingType.ProductCodeAscending:
                    orderQuery = products.OrderBy(x => x.EstateCode);
                    break;

                case SortingType.Oldest:
                    orderQuery = products.OrderBy(x => x.ModifiedDate);
                    break;

                default:
                    orderQuery = products.OrderByDescending(x => x.ModifiedDate);     //lasted
                    break;
                }
                var model = orderQuery.Select(x => new RealEstateEstateDto
                {
                    Account = new RealEstateAccountDto
                    {
                        AccountId = x.AccountId,
                        FirstName = x.Account.FirstName,
                        LastName  = x.Account.LastName,
                        Email     = x.Account.Email,
                        Mobile    = x.Account.Mobile,
                        UserName  = x.Account.UserName,
                    },
                    SaleOrRent = x.SaleOrRent,
                    Area       = x.Area,
                    SaleUnit   = new RealEstateSaleUnitDto
                    {
                        SaleUnitId = x.SaleUnitId,
                        Name       = x.SaleUnit.Name
                    }
                    ,
                    RentUnit = new RealEstateRentUnitDto
                    {
                        RentUnitId = x.RentUnitId,
                        Name       = x.RentUnit.Name
                    },
                    Note      = x.Note,
                    SalePrice = x.SalePrice,
                    RentPrice = x.RentPrice,
                    Id        = x.Id,
                    IsHot     = x.IsHot,
                    Town      = new RealEstateTownDto
                    {
                        TownId  = x.TownId,
                        Address = x.Town.Address,
                        Name    = x.Town.Name,
                    },
                    EstateCode      = x.EstateCode,
                    Estate_TypeId   = x.Estates_TypeId,
                    NameEstate_Type = x.Estate_Types.Name,
                    LotCode         = x.LotCode,
                    CreatedDate     = x.CreatedDate,
                    ModifiedDate    = x.ModifiedDate,
                    Phone           = x.Phone,
                    HouseNumber     = x.HouseNumber,
                    OwnerName       = x.OwnerName,
                    Lat             = x.Lat,
                    Long            = x.Long,
                    MainPinText     = x.PinMainText,
                    Address         = x.Address,
                    ImageUrls       = x.EstateMedias.Select(y => new EstateImageDto
                    {
                        Id   = y.Id,
                        Name = y.FriendlyFileName,
                        Url  = y.Url
                    }).ToList(),
                    IsDelete = x.IsDelete
                }).Skip(skip).Take(productArguments.PageLimit).ToList();
                foreach (var item in model)
                {
                    if (item.ImageUrls != null && item.ImageUrls.Any())
                    {
                        foreach (var imageUrl in item.ImageUrls)
                        {
                            imageUrl.Url = $"{GetBaseUrl()}{imageUrl.Url}";
                        }
                    }
                }
                return(new EstateResultDto
                {
                    EstateResults = model,
                    TotalRecord = totalRecords
                });
            }
            catch (Exception ex)
            {
                return(null);
            }
        }