예제 #1
0
        /// <summary>
        /// Add new document version
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public override async Task <ResultModel> AddNewDocumentVersionAsync(AddNewVersionDocumentViewModel model)
        {
            var addNewVersionRequest = await base.AddNewDocumentVersionAsync(model);

            if (!addNewVersionRequest.IsSuccess)
            {
                return(addNewVersionRequest);
            }
            var entryId = (Guid)addNewVersionRequest.Result;

            return(await WorkFlowExecutorService.SetStartStateForEntryAsync("DocumentVersion", entryId.ToString()));
        }
예제 #2
0
        public async Task <JsonResult> AddNewDocumentVersion(AddNewVersionDocumentViewModel model)
        {
            var result = new ResultModel();

            //if (!ModelState.IsValid)
            //{
            //    result.IsSuccess = false;
            //    result.Result = model;
            //    result.Errors.Add(new ErrorModel { Message = "model is not valid" });
            //    return Json(result);
            //}

            result = await _documentService.AddNewDocumentVersionAsync(model);

            return(Json(result));
        }
예제 #3
0
        /// <summary>
        /// Add new document version
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public virtual async Task <ResultModel> AddNewDocumentVersionAsync(AddNewVersionDocumentViewModel model)
        {
            var result      = new ResultModel();
            var userRequest = await _userManager.GetCurrentUserAsync();

            if (!userRequest.IsSuccess)
            {
                result.Errors.Add(new ErrorModel {
                    Message = "User not found"
                });
                result.IsSuccess = false;
                return(result);
            }
            var user = userRequest.Result;

            var document = await _documentContext.Documents.FirstOrDefaultAsync(x => x.Id == model.DocumentId);

            if (document == null)
            {
                result.Errors.Add(new ErrorModel {
                    Message = "document not fount"
                });
                result.IsSuccess = false;
                return(result);
            }


            Guid?fileId = null;

            if (model.File != null)
            {
                fileId = FileManager.AddFile(new UploadFileViewModel {
                    File = model.File
                }, user.Id).Result;
            }

            var newDocumentVersion = new DocumentVersion
            {
                DocumentId     = model.DocumentId,
                FileStorageId  = fileId,
                IsArhive       = false,
                Comments       = model.Comments,
                OwnerId        = user.Id,
                IsMajorVersion = model.IsMajorVersion,
                FileName       = model.File?.FileName ?? "",
                Url            = model.Url,
            };

            var lastVersion = await GetLastDocVersion(model.DocumentId);

            if (model.IsMajorVersion)
            {
                newDocumentVersion.VersionNumber = (int)lastVersion + 1;
            }
            else
            {
                newDocumentVersion.VersionNumber = lastVersion + 0.1;
            }

            await _documentContext.DocumentVersions.AddAsync(newDocumentVersion);

            result = await _documentContext.PushAsync();

            result.Result = newDocumentVersion.Id;
            return(result);
        }