예제 #1
0
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            DeregisterImageResponse response = new DeregisterImageResponse();

            while (context.Read())
            {
            }


            return(response);
        }
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            DeregisterImageResponse response = new DeregisterImageResponse();

            int originalDepth = context.CurrentDepth;
            int targetDepth   = originalDepth + 1;

            if (context.IsStartOfDocument)
            {
                targetDepth = 2;
            }

            while (context.ReadAtDepth(originalDepth))
            {
                if (context.IsStartElement || context.IsAttribute)
                {
                }
            }

            return(response);
        }
        public async Task <IActionResult> Delete(String TemplateID)
        {
            Template deleted = await _context.Templates.FindAsync(int.Parse(TemplateID));

            if (deleted != null)
            {
                DeregisterImageResponse response = await EC2Client.DeregisterImageAsync(new DeregisterImageRequest
                {
                    ImageId = deleted.AWSAMIReference
                });

                if (response.HttpStatusCode == HttpStatusCode.OK)
                {
                    if (!String.IsNullOrEmpty(deleted.AWSSnapshotReference))
                    {
                        Backgroundqueue.QueueBackgroundWorkItem(async token =>
                        {
                            _logger.LogInformation("Deletion of snapshot scheduled");
                            await Task.Delay(TimeSpan.FromMinutes(3), token);
                            await EC2Client.DeleteSnapshotAsync(new DeleteSnapshotRequest(deleted.AWSSnapshotReference));
                            _logger.LogInformation("Deletion of snapshot done!");
                        });
                    }
                    _context.Templates.Remove(deleted);
                    await _context.SaveChangesAsync();

                    TempData["Result"] = "Deleted Sucessfully!";
                    return(RedirectToAction(""));
                }
                else
                {
                    TempData["Result"] = "Delete Failed!";
                    return(RedirectToAction(""));
                }
            }
            else
            {
                return(NotFound());
            }
        }