public ActionResult Add(Guid contractGuid, string formType)
        {
            try
            {
                var  fileModel = new ContractFileViewModel();
                Guid contractResourceFileGuid = Guid.NewGuid();
                fileModel.ContractResourceFileGuid = contractResourceFileGuid;
                fileModel.ResourceGuid             = contractGuid;
                fileModel.keys = formType;

                return(PartialView(fileModel));
            }
            catch (Exception ex)
            {
                return(BadRequestFormatter.BadRequest(this, ex));
            }
        }
        public IActionResult Add([FromForm] ContractFileViewModel fileModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                fileModel.CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime();
                fileModel.UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime();
                fileModel.CreatedBy = UserHelper.CurrentUserGuid(HttpContext);
                fileModel.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext);
                fileModel.IsActive  = true;
                fileModel.IsDeleted = false;
                fileModel.IsCsv     = true;
                // gets the contractnumber to save the file in the folder.
                var ContractNumber = _contractRefactorService.GetContractNumberById(fileModel.ResourceGuid);
                if (fileModel.FileToUpload != null || fileModel.FileToUpload.Length != 0)
                {
                    //checks whether the file extension is the correct one and the validates the fields if the file is Csv.
                    var isfileValid = _fileService.UploadFileTypeCheck(fileModel.FileToUpload);
                    // var filename = _fileService.FilePostWithCount($@"{documentRoot}/{ContractNumber}/WorkBreakdownStructure/", fileModel.FileToUpload);
                    if (!isfileValid)
                    {
                        fileModel.IsCsv = false;
                    }
                    else
                    {
                        //Helpers.CsvValidationHelper.ChecksValidHeaderAndReadTheFile(filename, UploadMethodName.WorkBreakDownStructure);
                    }
                    //fileModel.UploadFileName = filename;
                }
                //soft delete the previous uploaded files
                _contractRefactorService.DeleteContractFileByContractGuid(fileModel.ResourceGuid, fileModel.keys);

                var fileEntity = _mapper.Map <ContractResourceFile>(fileModel);
                _contractRefactorService.InsertContractFile(fileEntity);
                return(Ok(new { status = ResponseStatus.success.ToString(), message = "Successfully Added !!" }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(ex.ToString(), ex.Message);
                return(BadRequest(ModelState));
            }
        }
 public IActionResult Edit([FromForm] ContractFileViewModel fileModel)
 {
     try
     {
         fileModel.UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime();
         fileModel.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext);
         fileModel.IsActive  = true;
         fileModel.IsDeleted = false;
         if (!ModelState.IsValid)
         {
             return(BadRequest(ModelState));
         }
         var fileEntity = _mapper.Map <ContractResourceFile>(fileModel);
         _contractRefactorService.UpdateContractFile(fileEntity);
         return(Ok(new { status = ResponseStatus.success.ToString(), message = "Successfully Edited !!" }));
     }
     catch (Exception ex)
     {
         return(BadRequestFormatter.BadRequest(this, ex));
     }
 }
        public IActionResult UploadSaveFileInFolderTreeNode(Guid resourceId, string resourceKey, string pathPrefixName, bool isTreeTemplate, string[] fileInfo)
        {
            try
            {
                //Avoiding Kendo Uploader's default call
                if (resourceId == Guid.Empty || fileInfo.Length == 0)
                {
                    return(Ok(true));
                }

                var             fileInfoObj1   = fileInfo[0].Split(',');
                IDocumentEntity documentEntity = new DocumentEntity();
                if (isTreeTemplate)
                {
                    documentEntity = GetTemplateFolderTree(new Guid(fileInfoObj1[5]), "Contract", resourceId, pathPrefixName);
                }
                else
                {
                    documentEntity = _documentManagementService.GetFileOrFolder(new Guid(fileInfoObj1[5]));
                }


                //If new file/s have been uploaded
                if (Request.Form.Files.Count > 0)
                {
                    var files = Request.Form.Files;
                    //foreach (var file in files)
                    for (int i = 0; i < files.Count; i++)
                    {
                        var fileInfoObj = fileInfo[i].Split(',');

                        //save file in folder..

                        var fullPath         = files[i].FileName.Split("\\");
                        var originalFileName = fullPath[fullPath.Length - 1];

                        //var fullPhysicalFilePath = Path.Combine(documentRoot, newTreeStructure.FilePath);
                        var fullPhysicalFilePath = string.Concat(documentRoot, documentEntity.FilePath);

                        var uniqueFileName =
                            _fileService.SaveFile(fullPhysicalFilePath, files[i]);

                        var relativeFilePath = Path.Combine(documentEntity.FilePath, uniqueFileName);

                        //save file info in database..
                        ContractFileViewModel contractFileViewModel = new ContractFileViewModel();

                        contractFileViewModel.ContractResourceFileGuid = new Guid(fileInfoObj[0]);
                        contractFileViewModel.CreatedOn            = CurrentDateTimeHelper.GetCurrentDateTime();
                        contractFileViewModel.UpdatedOn            = CurrentDateTimeHelper.GetCurrentDateTime();
                        contractFileViewModel.CreatedBy            = UserHelper.CurrentUserGuid(HttpContext);
                        contractFileViewModel.UpdatedBy            = UserHelper.CurrentUserGuid(HttpContext);
                        contractFileViewModel.Description          = WebUtility.UrlDecode(fileInfoObj[1]);
                        contractFileViewModel.MimeType             = files[i].ContentType;
                        contractFileViewModel.ResourceGuid         = resourceId;
                        contractFileViewModel.keys                 = resourceKey;
                        contractFileViewModel.UploadFileName       = uniqueFileName;
                        contractFileViewModel.UploadUniqueFileName = uniqueFileName;
                        contractFileViewModel.IsActive             = true;
                        contractFileViewModel.IsDeleted            = false;
                        contractFileViewModel.FilePath             = relativeFilePath;
                        contractFileViewModel.FileSize             = fileInfoObj[4];
                        contractFileViewModel.ParentId             = documentEntity.ContractResourceFileGuid;
                        contractFileViewModel.Isfile               = true;

                        var fileEntity = _mapper.Map <ContractResourceFile>(contractFileViewModel);

                        _contractRefactorService.InsertContractFile(fileEntity);

                        //auditlog..
                        AuditLogForUploadDownload(fileEntity, CrudTypeForAdditionalLogMessage.Uploaded.ToString());
                    }
                }

                //If existing file/s description have been changed
                if (fileInfo.Length > Request.Form.Files.Count)
                {
                    for (int i = Request.Form.Files.Count; i <= fileInfo.Length - 1; i++)
                    {
                        var fileInfoObj = fileInfo[i].Split(',');

                        var fileById = _contractRefactorService.GetFilesByContractFileGuid(new Guid(fileInfoObj[0]));
                        if (fileById != null)
                        {
                            fileById.Description = WebUtility.UrlDecode(fileInfoObj[1]);
                            _contractRefactorService.UpdateFile(fileById);
                        }
                    }
                }

                return(Ok(true));
            }
            catch (Exception ex)
            {
                return(BadRequestFormatter.BadRequest(this, ex));
            }
        }
        public IActionResult UploadSaveFile(Guid resourceId, string resourceKey, string uploadPath, string[] fileInfo, Guid parentid, string contractResourceFileKey, Guid ContentResourceGuid)
        {
            try
            {
                //Avoiding Kendo Uploader's default call
                if (resourceId == Guid.Empty || string.IsNullOrEmpty(uploadPath))
                {
                    return(Ok(true));
                }

                //If new file/s have been uploaded
                if (Request.Form.Files.Count > 0)
                {
                    var files = Request.Form.Files;
                    //foreach (var file in files)
                    for (int i = 0; i < files.Count; i++)
                    {
                        var fileInfoObj = fileInfo[i].Split(',');

                        //save file in folder..

                        var fullPath         = files[i].FileName.Split("\\");
                        var originalFileName = fullPath[fullPath.Length - 1];

                        //var fullPhysicalFilePath = Path.Combine(documentRoot, uploadPath);
                        var fullPhysicalFilePath = string.Concat(documentRoot, uploadPath);

                        var uniqueFileName =
                            _fileService.SaveFile(fullPhysicalFilePath, files[i]);

                        var relativeFilePath = Path.Combine(uploadPath, uniqueFileName);

                        //save file info in database..
                        ContractFileViewModel contractFileViewModel = new ContractFileViewModel();

                        contractFileViewModel.ContractResourceFileGuid = new Guid(fileInfoObj[0]);
                        contractFileViewModel.CreatedOn    = CurrentDateTimeHelper.GetCurrentDateTime();
                        contractFileViewModel.UpdatedOn    = CurrentDateTimeHelper.GetCurrentDateTime();
                        contractFileViewModel.CreatedBy    = UserHelper.CurrentUserGuid(HttpContext);
                        contractFileViewModel.UpdatedBy    = UserHelper.CurrentUserGuid(HttpContext);
                        contractFileViewModel.Description  = WebUtility.UrlDecode(fileInfoObj[1]);
                        contractFileViewModel.MimeType     = files[i].ContentType;
                        contractFileViewModel.ResourceGuid = resourceId;
                        //contractFileViewModel.keys = resourceKey;
                        contractFileViewModel.ParentId             = parentid;
                        contractFileViewModel.UploadFileName       = uniqueFileName;
                        contractFileViewModel.UploadUniqueFileName = uniqueFileName;
                        contractFileViewModel.IsActive             = true;
                        contractFileViewModel.IsDeleted            = false;
                        contractFileViewModel.FilePath             = relativeFilePath;
                        contractFileViewModel.FileSize             = fileInfoObj[4];
                        contractFileViewModel.Isfile              = true;
                        contractFileViewModel.keys                = contractResourceFileKey;
                        contractFileViewModel.ResourceType        = resourceKey;
                        contractFileViewModel.ContentResourceGuid = ContentResourceGuid;

                        if (resourceKey.ToUpper() == EnumGlobal.ResourceType.ContractModification.ToString().ToUpper() || resourceKey.ToUpper() == EnumGlobal.ResourceType.TaskOrderModification.ToString().ToUpper())
                        {
                            var contractGuid         = _contractModificationService.GetDetailById(ContentResourceGuid).ContractGuid;
                            var contractResourceFile = _contractResourceFileService.GetFilePathByResourceIdAndKeys(ContractResourceFileKey.ContractModification.ToString(), contractGuid);
                            contractFileViewModel.ParentId     = contractResourceFile.ContractResourceFileGuid;
                            contractFileViewModel.keys         = ContractResourceFileKey.ContractModification.ToString();
                            contractFileViewModel.ResourceGuid = contractGuid;

                            //contractFileViewModel.ResourceType = resourceKey;
                            //for task order also resourcetype is Contract to show in the tree view from the database..
                            contractFileViewModel.ResourceType = EnumGlobal.ResourceType.Contract.ToString();
                        }
                        else if ((parentid == Guid.Empty || parentid != null) && ContentResourceGuid == Guid.Empty)
                        {
                            if (resourceKey.ToUpper() != EnumGlobal.ResourceType.ContractCloseOut.ToString().ToUpper())
                            {
                                var contractResourceFile = _contractResourceFileService.GetFilePathByResourceIdAndKeys(EnumGlobal.ResourceType.Base.ToString(), resourceId);
                                contractFileViewModel.ParentId = contractResourceFile.ContractResourceFileGuid;
                                contractFileViewModel.keys     = EnumGlobal.ResourceType.Base.ToString();
                                //contractFileViewModel.ResourceType = resourceKey;
                                //for task order also resourcetype is Contract to show in the tree view from the database..
                                contractFileViewModel.ResourceType = EnumGlobal.ResourceType.Contract.ToString();
                            }
                        }

                        if (resourceKey.ToUpper() == EnumGlobal.ResourceType.ContractCloseOut.ToString().ToUpper())
                        {
                            contractFileViewModel.ResourceType = EnumGlobal.ResourceType.Contract.ToString();
                        }

                        var fileEntity = _mapper.Map <ContractResourceFile>(contractFileViewModel);

                        _contractRefactorService.InsertContractFile(fileEntity);

                        //auditlog..
                        AuditLogForUploadDownload(fileEntity, CrudTypeForAdditionalLogMessage.Uploaded.ToString());
                    }
                }

                //If existing file/s description have been changed
                if (fileInfo.Length > Request.Form.Files.Count)
                {
                    for (int i = Request.Form.Files.Count; i <= fileInfo.Length - 1; i++)
                    {
                        var fileInfoObj = fileInfo[i].Split(',');

                        var fileById = _contractRefactorService.GetFilesByContractFileGuid(new Guid(fileInfoObj[0]));
                        if (fileById != null)
                        {
                            fileById.Description = WebUtility.UrlDecode(fileInfoObj[1]);
                            _contractRefactorService.UpdateFile(fileById);
                        }
                    }
                }

                return(Ok(true));
            }
            catch (Exception ex)
            {
                return(BadRequestFormatter.BadRequest(this, ex));
            }
        }