public async Task <ResponseViewModel> CreateNew(MobilizationInputModel model)
        {
            var user = await _userManager.FindByIdAsync(_httpContextAccessor.HttpContext.User.GetLoggedInUserId <int>().ToString());

            var query = _plotService.AllPlots().FirstOrDefault(x => x.Id == model.PlotId);

            if (query == null)
            {
                return(NotFound(ResponseMessageViewModel.INVALID_PLOT, ResponseErrorCodeStatus.INVALID_PLOT));
            }

            model.AppUserId = user.Id;

            if (!string.IsNullOrEmpty(model.Document))
            {
                var uploadResult = await

                                   BaseContentServer
                                   .Build(ContentServerTypeEnum.FIREBASE, _setting)
                                   .UploadDocumentAsync(FileDocument.Create(model.Document, "Mobilization", $"{user.GUID}", FileDocumentType.GetDocumentType(MIMETYPE.IMAGE)));

                if (uploadResult == null)
                {
                    return(Failed(ResponseMessageViewModel.ERROR_UPLOADING_FILE, ResponseErrorCodeStatus.ERROR_UPLOADING_FILE));
                }

                model.Document = uploadResult.Path;
            }

            var mappedResult = _mobilizationService.CreateNew(_mapper.Map <MobilizationInputModel, Mobilization>(model));

            var result = _mapper.Map <Mobilization, MobilizationViewModel>(mappedResult);

            return(Ok(result));
        }
        public ResponseViewModel Update(int id, MobilizationInputModel model)
        {
            var query = _plotService.AllPlots().FirstOrDefault(x => x.Id == model.PlotId);

            if (query == null)
            {
                return(NotFound(ResponseMessageViewModel.INVALID_PLOT, ResponseErrorCodeStatus.INVALID_PLOT));
            }

            var data = _mobilizationService.GetAllMobilization().FirstOrDefault(x => x.Id == id);

            if (data == null)
            {
                return(NotFound(ResponseMessageViewModel.INVALID_MOBILIZATION, ResponseErrorCodeStatus.INVALID_MOBILIZATION));
            }

            //TODO: Check the owner of the mobilization, to prevent other user from updating the record
            var entityMapped = _mapper.Map <MobilizationInputModel, Mobilization>(model); entityMapped.Id = data.Id;

            var result = _mobilizationService.Update(entityMapped);

            var mappedResult = _mapper.Map <Mobilization, MobilizationViewModel>(result);

            return(Ok(mappedResult));
        }
        public IActionResult UpdateMobilizatoin(int id, [FromBody] MobilizationInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            return(Ok(_mobilizationAppService.Update(id, model)));
        }
        public IActionResult CreateNewMobilization([FromBody] MobilizationInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            return(Ok(_mobilizationAppService.CreateNew(model).Result));
        }