Esempio n. 1
0
        public ActionResult Add(Guid communityId, [FromForm] ConsumptionApiModel consumptionApiModel)
        {
            try
            {
                // Guid id = Guid.Parse(attachViewModel.Id);
                FileUploadManager fileUploadManager = new FileUploadManager(consumptionApiModel.Attachment);
                string            fileName          = fileUploadManager.FileName;

                var outputFilePath = FileUploadManager.GetTempFolderPath(Guid.NewGuid().ToString() + ".xlsx");
                var byteArray      = fileUploadManager.GetByteArray();
                var consumption    = _consumptionMapper.Map(consumptionApiModel);
                consumption.Id = Guid.NewGuid();

                ServiceFactory    serviceFactory      = new ServiceFactory(this._faciTechDbContext, this._contactId);
                ConsumptionImport communityOnboarding = new ConsumptionImport(serviceFactory, communityId, outputFilePath);
                consumption.CommunityId = communityId;
                var isValid = communityOnboarding.Import(consumption, byteArray);

                FileManager fileManager = new FileManager(outputFilePath);
                var         outputFile  = new Attachment()
                {
                    FileName    = fileName,
                    FileContent = fileManager.GetByteArray(),
                    TableName   = "Consumption",
                    TableId     = consumption.Id,
                    MimeType    = consumptionApiModel.Attachment.ContentType
                };

                _attachmentService.Create(outputFile, true);
                fileUploadManager.DeleteFile();
                return(Ok(new ApiResponse(new { Id = consumption.Id, IsAllValid = isValid, FileName = fileName }, ApiStatus.Success)));
            }
            catch (Exception ex)
            {
                return(new UnknownErrorResult(ex, base._errorEnabled));
            }
        }