public async Task <bool> SaveProductAsync()
        {
            var product = new RealEstateEstateDto
            {
                Estate_TypeId = SelectedListingType?.Id,
                Town          = new RealEstateTownDto {
                    TownId = SelectedTown?.Id
                },
                EstateCode = ProductName,
                IsHot      = IsHot,
                Account    = new RealEstateAccountDto {
                    AccountId = App.AccountInfo.Id
                },
                Area        = Area,
                HouseNumber = HouseNumber,
                SalePrice   = SalePrice,
                SaleUnit    = new RealEstateSaleUnitDto {
                    SaleUnitId = SelectedSaleUnit?.Id
                },
                RentPrice = RentPrice,
                RentUnit  = new RealEstateRentUnitDto {
                    RentUnitId = SelectedRentUnit?.Id
                },
                Lat         = SelectedPlace?.Lat,
                Long        = SelectedPlace?.Long,
                MainPinText = SelectedPlace?.StructuredFormatting?.MainText,
                Address     = SelectedPlace?.Description,
                Phone       = Mobile,
                OwnerName   = OwnerName,
                Note        = Notes
            };

            if (ProductItemViewModel == null)
            {
                if (Photos.Any())
                {
                    foreach (var item in Photos.Where(x => x.Id == 0))
                    {
                        var returnId = await ProductService.UploadMedias(item.ImageName, await item.ImageSource.GetStreamFromImageSource());

                        if (returnId.HasValue)
                        {
                            product.EstateImageIds.Add(returnId.Value);
                        }
                        else
                        {
                            await DialogService.ShowAlertAsync("Can't upload medias to server. Please retry later", "Warning", "Ok");

                            return(false);
                        }
                    }
                }
                return(await ProductService.CreateProduct(product));
            }
            else
            {
                product.Id = ProductItemViewModel.Id;
                return(await ProductService.UpdateProduct(product));
            }
        }
Esempio n. 2
0
        public async Task <bool> UpdateProduct(RealEstateEstateDto product)
        {
            var result = await Service.Post <bool, NullServiceObject>(GenerateUrl("UpdateEstate"), product);

            await HandleResponseShowError(result);

            return(result?.Response?.Data ?? false);
        }
Esempio n. 3
0
        public bool CreateEstate(RealEstateEstateDto model)
        {
            try
            {
                var now  = DateTime.Now;
                var item = new Estate
                {
                    TownId         = model.Town.TownId,
                    EstateCode     = model.EstateCode,
                    CreatedDate    = now,
                    ModifiedDate   = now,
                    LotCode        = model.LotCode,
                    HouseNumber    = model.HouseNumber,
                    OwnerName      = model.OwnerName,
                    SalePrice      = model.SalePrice,
                    RentPrice      = model.RentPrice,
                    Note           = model.Note,
                    IsHot          = model.IsHot,
                    AccountId      = model.Account.AccountId,
                    SaleUnitId     = model.SaleUnit.SaleUnitId,
                    RentUnitId     = model.RentUnit.RentUnitId,
                    Area           = model.Area,
                    Phone          = model.Phone,
                    Lat            = model.Lat,
                    Long           = model.Long,
                    PinMainText    = model.MainPinText,
                    Address        = model.Address,
                    Estates_TypeId = model.Estate_TypeId,
                    IsDelete       = false,
                };

                _realEstateEntities.Estates.Add(item);
                _realEstateEntities.SaveChanges();
                if (model.EstateImageIds.Any())
                {
                    foreach (var imageId in model.EstateImageIds)
                    {
                        var estateImage = _realEstateEntities.EstateMedias.FirstOrDefault(x => x.Id == imageId);
                        if (estateImage != null)
                        {
                            estateImage.EstateId = item.Id;
                        }
                    }
                    _realEstateEntities.SaveChanges();
                }
                var EstateCode = item.EstateCode;
                Task.Run(async() =>
                {
                    await NotificationSender.Instance.Send($"Notification ", $" {EstateCode} was created");
                });
                return(true);
            }
            catch (System.Exception ex)
            {
                return(false);
            }
        }
Esempio n. 4
0
        public async Task <IHttpActionResult> CreateEstate(RealEstateEstateDto arguments)
        {
            bool update = _service.CreateEstate(arguments);

            return(Ok(RealEstateResponse <bool> .Create(update)));
        }
Esempio n. 5
0
        public bool UpdateEstate(RealEstateEstateDto model)
        {
            try
            {
                var now  = DateTime.Now;
                var item = _realEstateEntities.Estates.Find(model.Id);
                if (model.Account.AccountId != item.AccountId || item.IsDelete == true)
                {
                    return(false);
                }
                item.TownId         = model.Town.TownId;
                item.EstateCode     = model.EstateCode;
                item.CreatedDate    = now;
                item.LotCode        = model.LotCode;
                item.HouseNumber    = model.HouseNumber;
                item.OwnerName      = model.OwnerName;
                item.SalePrice      = model.SalePrice;
                item.RentPrice      = model.RentPrice;
                item.Note           = model.Note;
                item.IsHot          = model.IsHot;
                item.AccountId      = model.Account.AccountId;
                item.SaleUnitId     = model.SaleUnit.SaleUnitId;
                item.RentUnitId     = model.RentUnit.RentUnitId;
                item.Area           = model.Area;
                item.Phone          = model.Phone;
                item.IsDelete       = false;
                item.Estates_TypeId = model.Estate_TypeId;
                bool modelChang = false;


                if (item.EstateCode != model.EstateCode)
                {
                    if (modelChang)
                    {
                        model.LogBy = model.LogBy + "Edit Estate Code:" + model.EstateCode.ToString() + " From " + item.EstateCode.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    else
                    {
                        model.LogBy = item.LogBy + "Edit Estate Code:" + model.EstateCode.ToString() + " From " + item.EstateCode.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    modelChang = true;
                }
                if (item.SalePrice != model.SalePrice)
                {
                    if (modelChang)
                    {
                        model.LogBy = model.LogBy + "Edit Sale Price:" + model.SalePrice.ToString() + " From " + item.SalePrice.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    else
                    {
                        model.LogBy = item.LogBy + "Edit Sale Price:" + model.SalePrice.ToString() + " From " + item.SalePrice.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    modelChang = true;
                }

                if (item.RentPrice != model.RentPrice)
                {
                    if (modelChang)
                    {
                        model.LogBy = model.LogBy + "Edit Rent Price: " + model.RentPrice.ToString() + " From " + item.RentPrice.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    else
                    {
                        model.LogBy = item.LogBy + "Edit Rent Price: " + model.RentPrice.ToString() + " From " + item.RentPrice.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    modelChang = true;
                }
                if (item.OwnerName != model.OwnerName)
                {
                    if (modelChang)
                    {
                        model.LogBy = model.LogBy + "Edit Owner Name: " + model.OwnerName.ToString() + " From " + item.OwnerName.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    else
                    {
                        model.LogBy = item.LogBy + "Edit Owner Name: " + model.OwnerName.ToString() + " From " + item.OwnerName.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    modelChang = true;
                }
                if (item.Phone != model.Phone)
                {
                    if (modelChang)
                    {
                        model.LogBy = model.LogBy + "Edit Phone: " + model.Phone.ToString() + " From " + item.Phone.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    else
                    {
                        model.LogBy = item.LogBy + "Edit Phone: " + model.Phone.ToString() + " From " + item.Phone.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }

                    modelChang = true;
                }

                if (item.EstateCode != model.EstateCode)
                {
                    if (modelChang)
                    {
                        model.LogBy = model.LogBy + "Edit EstateCode: " + model.EstateCode.ToString() + " From " + item.EstateCode.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    else
                    {
                        model.LogBy = item.LogBy + "Edit EstateCode: " + model.EstateCode.ToString() + " From " + item.EstateCode.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }

                    modelChang = true;
                }
                if (item.LotCode != model.LotCode)
                {
                    if (modelChang)
                    {
                        model.LogBy = model.LogBy + "Edit Town Id: " + model.LotCode.ToString() + " From " + item.LotCode.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    else
                    {
                        model.LogBy = item.LogBy + "Edit Town Id: " + model.LotCode.ToString() + " From " + item.LotCode.ToString() + " at " + DateTime.Now.ToString() + "</br>";
                    }
                    modelChang = true;
                }
                _realEstateEntities.SaveChanges();
                var Town       = item.Town.Name;
                var EstateCode = item.EstateCode;
                Task.Run(async() =>
                {
                    await NotificationSender.Instance.Send($"Notification ", $" {EstateCode} - {Town} has edited");
                });
                return(true);
            }
            catch (System.Exception ex)
            {
                return(false);
            }
        }