public async Task <IActionResult> CreateDocument(DocumentInputModel model)
        {
            this.FillServiceUnifiedModel();
            if (!this.ModelState.IsValid)
            {
                return(this.View("Create", this.unifiedModel));
            }

            var document = new CreateDocumentServiceModel
            {
                Name        = model.DocumentName,
                Description = model.DocumentDescription,
            };

            await this.documentsService.CreateAsync(document);

            return(this.RedirectToAction("Create"));
        }
        //--------------- METHODS -----------------
        /// <summary>
        /// Creates a new <see cref="Document"/> using the <see cref="CreateDocumentServiceModel"/>.
        /// If such <see cref="Document"/> already exists in the database, fetches it's (int)<c>Id</c> and returns it.
        /// If such <see cref="Document"/> doesn't exist in the database, adds it and return it's (int)<c>Id</c>.
        /// </summary>
        /// <param name="model">Service model with <c>Name</c> and <c>Description</c></param>
        /// <returns>Document ID</returns>
        public async Task <int> CreateAsync(CreateDocumentServiceModel model)
        {
            int documentId = this.dbContext.Documents.Where(d => d.Name == model.Name)
                             .Select(x => x.Id)
                             .FirstOrDefault();

            if (documentId != 0)   // If documentId is different than 0 (int default value), document with such name already exists, so return it's id.
            {
                return(documentId);
            }

            Document document = new Document
            {
                Name        = model.Name,
                Description = model.Description,
            };

            await this.dbContext.Documents.AddAsync(document);

            await this.dbContext.SaveChangesAsync();

            return(document.Id);
        }