Exemple #1
0
        public async Task <IActionResult> UpdateRemote(int id, [FromBody] AddNewRemoteFormData data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!AzureConnectionString.TryParse(data.ConnectionString, out var connectionStirngObj))
            {
                ModelState.AddModelError(nameof(data.ConnectionString), "Connection String Was Invalid");
                return(BadRequest(ModelState));
            }

            using (var context = _contextFactory.CreateContext())
            {
                var remote = await context.BackupRemotes.FindAsync(id);

                if (remote == null)
                {
                    return(NotFound());
                }

                remote.BaseFolder       = data.BaseFolder;
                remote.ConnectionString = connectionStirngObj;
                remote.Default          = data.Default;
                remote.Name             = data.Name;

                if (data.Default)
                {
                    var currentDefault = await context.BackupRemotes.SingleOrDefaultAsync(r => r.Default);

                    if (currentDefault != null)
                    {
                        currentDefault.Default = false;
                    }
                }

                await context.SaveChangesAsync();

                return(Created(Request.Path.ToString() + "/" + remote.BackupRemoteId, remote));
            }
        }
Exemple #2
0
        public async Task <IActionResult> AddNewRemote([FromBody] AddNewRemoteFormData data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!AzureConnectionString.TryParse(data.ConnectionString, out var connectionStringObj))
            {
                ModelState.AddModelError(nameof(data.ConnectionString), "Connection String Was Invalid");
                return(BadRequest(ModelState));
            }

            var remote = new BackupRemote(data.Name, data.BaseFolder, connectionStringObj)
            {
                Default = data.Default
            };

            using (var context = _contextFactory.CreateContext())
            {
                if (data.Default)
                {
                    var currentDefault = await context.BackupRemotes.SingleOrDefaultAsync(r => r.Default == true);

                    if (currentDefault != null)
                    {
                        currentDefault.Default = false;
                    }
                }

                await context.BackupRemotes.AddAsync(remote);

                await context.SaveChangesAsync();
            }

            return(Created(Request.Path.ToString() + "/" + remote.BackupRemoteId, remote));
        }