public ActionResult <Result <bool> > CreateTask([FromBody] CreateTaskRQ body) { if (string.IsNullOrEmpty(body.Name)) { return(Result <bool> .Fail("Name cannot be empty.")); } if (body.TemplateId <= 0) { return(Result <bool> .Fail("A template must be selected.")); } var taskExists = _taskRepo.TaskExists(body.Name); if (taskExists) { return(Result <bool> .Fail($"Task '{body.Name}' already exists.")); } var newDbName = NameHelper.TaskName(); var alreadyRegistered = _taskRepo.DatabaseRegisteredAsTask(newDbName); if (alreadyRegistered) { return(Result <bool> .Fail($"Generated name is already used for another task. Please try again.")); } var existsOnSqlServer = _microsoftSQLService.DatabaseExists(newDbName); if (existsOnSqlServer) { return(Result <bool> .Fail($"Generated name is not unique. Please try again.")); } var templateEntity = _templateRepo.Get(body.TemplateId); var cloneSuccess = _microsoftSQLService.CloneDatabase(templateEntity.NameOnServer, newDbName, true, true); if (!cloneSuccess) { return(Result <bool> .Fail($"Failed to clone database '{templateEntity.NameOnServer}' into '{newDbName}'.")); } var success = _taskRepo.Create(body, newDbName, UserId); if (success) { return(Result <bool> .Success(true)); } else { return(Result <bool> .Fail("Failed to save changes.")); } }
public bool Create(CreateTaskRQ request, string nameOnServer, Guid userId) { var taskEntity = new TaskEntity() //AutoMapper { Name = request.Name, TemplateId = request.TemplateId, NameOnServer = nameOnServer, DateCreated = DateTime.UtcNow, CreatedBy = userId, }; _context.Tasks.Add(taskEntity); return(_context.SaveChanges() == 1); }