コード例 #1
0
        public async Task <IHttpActionResult> Patch([FromODataUri] int key, Delta <CmpInterfaceModel.Models.VmMigrationRequest> patch)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            CmpInterfaceModel.Models.VmMigrationRequest vmmigrationrequest = await db.VmMigrationRequests.FindAsync(key);

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

            patch.Patch(vmmigrationrequest);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!VmMigrationRequestExists(key))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Updated(vmmigrationrequest));
        }
コード例 #2
0
        //*********************************************************************
        ///
        /// <summary>
        ///
        /// </summary>
        /// <param name="vmMigrateRequest"></param>
        /// <returns></returns>
        ///
        //*********************************************************************

        CmpServiceLib.Models.VmMigrationRequest IntToServ(
            CmpInterfaceModel.Models.VmMigrationRequest vmMigrateRequest)
        {
            if (null == vmMigrateRequest)
            {
                return(null);
            }

            var Ret =
                new CmpServiceLib.Models.VmMigrationRequest
            {
                ID = vmMigrateRequest.ID,
                VmDeploymentRequestID = vmMigrateRequest.VmDeploymentRequestID,
                VmSize                = vmMigrateRequest.VmSize,
                Config                = vmMigrateRequest.Config,
                TargetVmName          = vmMigrateRequest.TargetVmName,
                SourceServerName      = vmMigrateRequest.SourceServerName,
                SourceVhdFilesCSV     = vmMigrateRequest.SourceVhdFilesCSV,
                ExceptionMessage      = vmMigrateRequest.ExceptionMessage,
                LastStatusUpdate      = NonNull(vmMigrateRequest.LastStatusUpdate),
                StatusCode            = vmMigrateRequest.StatusCode,
                StatusMessage         = vmMigrateRequest.StatusMessage,
                AgentRegion           = vmMigrateRequest.AgentRegion,
                AgentName             = vmMigrateRequest.AgentName,
                CurrentStateStartTime = NonNull(vmMigrateRequest.CurrentStateStartTime),
                CurrentStateTryCount  = NonNull(vmMigrateRequest.CurrentStateTryCount),
                Warnings              = vmMigrateRequest.Warnings,
                Active                = NonNull(vmMigrateRequest.Active)
            };

            return(Ret);
        }
コード例 #3
0
        //*********************************************************************
        ///
        /// <summary>
        /// PUT odata/VmMigrations(5)
        /// </summary>
        /// <param name="key"></param>
        /// <param name="vmmigrationrequest"></param>
        /// <returns></returns>
        ///
        //*********************************************************************

        //[Authorize]
        public async Task <IHttpActionResult> Put([FromODataUri] int key,
                                                  CmpInterfaceModel.Models.VmMigrationRequest vmmigrationrequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (key != vmmigrationrequest.ID)
            {
                return(BadRequest());
            }

            /*db.Entry(vmmigrationrequest).State = EntityState.Modified;
             *
             * try
             * {
             *  await db.SaveChangesAsync();
             * }
             * catch (DbUpdateConcurrencyException)
             * {
             *  if (!VmMigrationRequestExists(key))
             *  {
             *      return NotFound();
             *  }
             *  else
             *  {
             *      throw;
             *  }
             * }
             *
             * return Updated(vmmigrationrequest);*/

            //////////////////////

            try
            {
                DateTime Now = DateTime.UtcNow;
                vmmigrationrequest.LastStatusUpdate = DateTime.UtcNow;

                CmpServiceLib.Models.VmMigrationRequest vmMigReq = IntToServ(vmmigrationrequest);

                CmpServiceLib.CmpService CMP = new CmpServiceLib.CmpService(_EventLog, _CmpDbConnectionString, _AftsDbConnectionString);
                CMP.UpdateVmMigrationRequest(vmMigReq, null, true, null);

                return(Updated(vmmigrationrequest));
            }
            catch (Exception ex)
            {
                LogThis(ex, EventLogEntryType.Error, "Exception in Put()", 100, 100);
                throw ex;
            }
        }
コード例 #4
0
        //*********************************************************************
        ///
        /// <summary>
        /// DELETE odata/VmMigrations(5)
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        ///
        //*********************************************************************

        //[Authorize]
        public async Task <IHttpActionResult> Delete([FromODataUri] int key)
        {
            CmpInterfaceModel.Models.VmMigrationRequest vmmigrationrequest = await db.VmMigrationRequests.FindAsync(key);

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

            db.VmMigrationRequests.Remove(vmmigrationrequest);
            await db.SaveChangesAsync();

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #5
0
        //*********************************************************************
        ///
        /// <summary>
        /// POST odata/VmMigrations
        /// </summary>
        /// <param name="vmmigrationrequest"></param>
        /// <returns></returns>
        ///
        //*********************************************************************

        //[Authorize]
        public async Task <IHttpActionResult> Post(CmpInterfaceModel.Models.VmMigrationRequest vmmigrationrequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var cmp      = new CmpServiceLib.CmpService(_EventLog, _CmpDbConnectionString, _AftsDbConnectionString);
            var vmMigReq = IntToServ(vmmigrationrequest);

            if (0 == vmmigrationrequest.ID)
            {
                vmmigrationrequest = ServToInt(cmp.InsertVmMigrationRequest(vmMigReq));
            }
            else
            {
                cmp.UpdateVmMigrationRequest(vmMigReq, null, true, null);
            }

            return(Created(vmmigrationrequest));
        }