Beispiel #1
0
        public ActionResult BMBuildingUploadInfo()
        {
            //guard clause
            if (Request.Files == null || Request.Files.Count == 0)
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }

            //check if request has valid keys
            var requestResult = BuildingRequestHelper.GetRequestResult(Request);

            if (!requestResult.IsValid)
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }

            //identify type of file uploaded ( excel or csv)
            bool success = false;
            var  message = "There was a problem with the upload. Please contact administrator.";
            List <ApartmentViewModel> list = null;

            if (Request.Files[0] != null && Request.Files[0].ContentLength > 0)
            {
                var uploadedFile = Request.Files[0];
                var extension    = Path.GetExtension(uploadedFile.FileName);
                try
                {
                    //TODO: the static factory causes some issue with repo dependencies
                    //var dataSourceManager = DataSourceServiceFactory.GetService(extension);
                    var building = _buildingRepo.GetById(requestResult.BuildingId);
                    if (building == null)
                    {
                        throw new ArgumentNullException("building");
                    }

                    var apartmentData = ApartmentManager.MapDataSourceToApartment(uploadedFile, requestResult.BuildingId) as List <Apartment>;
                    if (apartmentData != null && apartmentData.Count > 0)
                    {
                        list = apartmentData.Select(apt =>
                        {
                            var vm = ApartmentViewModel.CreateModel(apt);
                            return(vm);
                        }).ToList();

                        success = true;
                        message = string.Concat("Successully uploaded ", uploadedFile.FileName);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Error <BMBuildingController>(ex.Message, ex);
                    success = false;
                }
            }

            return(Json(new { success, message, list }, JsonRequestBehavior.AllowGet));
        }
Beispiel #2
0
        public JsonResult BMBuildingInfo()
        {
            //check if request has valid keys
            var requestResult = BuildingRequestHelper.GetRequestResult(Request);

            if (!requestResult.IsValid)
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }

            bool success = false;

            //get the apartments registered on db for the building
            var apartments = ApartmentManager.GetApartments(requestResult.BuildingId);
            List <ApartmentViewModel> list = null;

            if (apartments != null && apartments.Count > 0)
            {
                list = apartments.Select(apt =>
                {
                    var vm = ApartmentViewModel.CreateModel(apt);

                    //identify the file assets for the apartment
                    //var apartment = _apartmentRepo.GetById(apt.Id);
                    var assets = MediaManager.GetApartmentMediaAssets(apt.Id);
                    if (assets != null && assets.Count > 0)
                    {
                        vm.FileAssets = assets.Select(x =>
                        {
                            return(new ApartmentAssetViewModel {
                                MediaId = x.Id, Url = Umbraco.TypedMedia(x.Id).Url
                            });
                        }).ToList <ApartmentAssetViewModel>();
                    }
                    return(vm);
                }).ToList();

                success = true;
            }

            return(Json(new { success, list }, JsonRequestBehavior.AllowGet));
        }