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)); }
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)); }