Example #1
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            try
            {
                Book book = await db.Books.FindAsync(id);

                ImagePatch patch  = db.ImagePatchs.Where(n => n.BooksId == id).FirstOrDefault();
                string     patch1 = Path.Combine(Server.MapPath("~/Images"), patch.ImageUrl);

                if (patch1 != null && patch.ImageUrl != "No.jpg")
                {
                    if (System.IO.File.Exists(patch1))
                    {
                        System.IO.File.Delete(patch1);
                    }
                }
                db.Books.Remove(book);
                db.ImagePatchs.Remove(patch);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(RedirectToAction("Index"));
            }
        }
        public ActionResult Create([Bind(Include = "Id,Title,Price,Description,PagesCount,CountryPublishedId,AuthorsId")] Book book, HttpPostedFileBase upload)
        {
            if (ModelState.IsValid)
            {
                if (upload != null && upload.ContentLength > 0)
                {
                    //    upload = Request.Files["upload"];
                    string filename = Path.GetFileName(upload.FileName);
                    string patch    = Path.Combine(Server.MapPath("~/Images"), filename);
                    upload.SaveAs(patch);
                    var photo = new ImagePatch
                    {
                        ImageUrl = System.IO.Path.GetFileName(upload.FileName),
                    };
                    book.ImagePatchs = new List <ImagePatch>();
                    book.ImagePatchs.Add(photo);
                }
                // upload.SaveAs(System.IO.Path.Combine(directory, photo.ImageUrl));



                db.Books.Add(book);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.AuthorsId          = new SelectList(db.Authors, "Id", "FullName", book.AuthorsId);
            ViewBag.CountryPublishedId = new SelectList(db.CountryPublisheds, "Id", "CountryName", book.CountryPublishedId);
            return(View(book));
        }
        /// <summary>
        /// Updates a single Image with one or more values
        /// </summary>
        /// <param name="updatedImage">The new data for the Image you wish to update</param>
        /// <returns>Returns a result indicating if the operation succeeded</returns>
        public async Task <Result> UpdateImage(ImagePatch updatedImage)
        {
            try
            {
                using (var con = new Npgsql.NpgsqlConnection(settings.Connection.DatabaseConnectionString))
                {
                    var sqlPatchOperations = new StringBuilder();
                    var obj            = updatedImage;
                    var operationCount = 0;

                    if (obj.CompanyId != null)
                    {
                        sqlPatchOperations.AppendLine(obj.CompanyId.Operation == OperationKind.Remove
                            ? "companyId = NULL,"
                            : "companyId = @CompanyId,"
                                                      );
                        operationCount++;
                    }
                    if (obj.ImageKey != null)
                    {
                        sqlPatchOperations.AppendLine(obj.ImageKey.Operation == OperationKind.Remove
                            ? "imageKey = NULL,"
                            : "imageKey = @ImageKey,"
                                                      );
                        operationCount++;
                    }
                    if (obj.ImageTitle != null)
                    {
                        sqlPatchOperations.AppendLine(obj.ImageTitle.Operation == OperationKind.Remove
                            ? "imageTitle = NULL,"
                            : "imageTitle = @ImageTitle,"
                                                      );
                        operationCount++;
                    }

                    var patchOperations = sqlPatchOperations.ToString();

                    if (operationCount > 0)
                    {
                        // Remove final ", " from StringBuilder to ensure query is valid
                        patchOperations = patchOperations.TrimEnd(System.Environment.NewLine.ToCharArray());
                        patchOperations = patchOperations.TrimEnd(',');
                    }

                    await con.ExecuteAsync($"UPDATE \"Image\" SET {patchOperations} WHERE imageId = @ResourceId", new {
                        ResourceId = obj.ResourceId,
                        CompanyId  = (int)(obj.CompanyId == default ? default : obj.CompanyId.Value),
                        ImageKey   = (string)(obj.ImageKey == default ? default : obj.ImageKey.Value),
                        ImageTitle = (string)(obj.ImageTitle == default ? default : obj.ImageTitle.Value)
                    }).ConfigureAwait(false);

                    return(Result.Ok());
                }
Example #4
0
        public async Task <ActionResult> Edit([Bind(Include = "Id,Title,Price,Description,PagesCount,Picture,ImagePatchs,CountryPublishedId,AuthorsId")] BookViewModel model, HttpPostedFileBase upload)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //book = await db.Books.FindAsync(book.Id);
                    ImagePatch oldpatch = db.ImagePatchs.Where(n => n.BooksId == model.Id).FirstOrDefault();
                    string     pat      = oldpatch.ImageUrl;
                    if (upload != null)
                    {
                        var supportedTypes = new[] { "jpg", "jpeg", "png" };
                        var fileExt        = System.IO.Path.GetExtension(upload.FileName).Substring(1);

                        if (!supportedTypes.Contains(fileExt))
                        {
                            return(RedirectToAction("Index"));
                            // ModelState.AddModelError("photo", "Invalid type. Only the following types (jpg, jpeg, png) are supported.");
                        }

                        string filename = Guid.NewGuid().ToString() + Path.GetExtension(upload.FileName);
                        string patch    = Path.Combine(Server.MapPath("~/Images"), filename);
                        upload.SaveAs(patch);

                        ImagePatch patchimg = db.ImagePatchs.Where(n => n.BooksId == model.Id).FirstOrDefault();
                        if (patchimg != null)
                        {
                            patchimg.ImageUrl = filename;

                            string patch1 = Path.Combine(Server.MapPath("~/Images"), pat);

                            if (System.IO.File.Exists(patch1))
                            {
                                System.IO.File.Delete(patch1);
                            }
                        }
                    }

                    Book b = BookRelase.EditBook(model);
                    db.Entry(b).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }
                ViewBag.AuthorsId          = new SelectList(db.Authors, "Id", "FullName", model.AuthorsId);
                ViewBag.CountryPublishedId = new SelectList(db.CountryPublisheds, "Id", "CountryName", model.CountryPublishedId);
                return(View(model));
            }
            catch
            {
                return(RedirectToAction("Index"));
            }
        }
Example #5
0
        public async Task <IActionResult> UpdateImageDetails(int id, [FromBody] ImagePatch item)
        {
            var userPid = User.Identity.Name.Substring(User.Identity.Name.IndexOf(@"\") + 1);
            var result  = _context.Images.FirstOrDefault(t => t.Id == id);

            if (result == null)
            {
                return(NotFound());
            }
            //result.Description = item.Description;
            result.Approved      = item.Approved;
            result.ImageName     = item.ImageName;
            result.ApprovedByPID = Convert.ToInt32(userPid);
            // result.Placeholder = item.Placeholder;
            result.ApprovedDate = DateTime.Now;
            _context.Images.Update(result);
            await _context.SaveChangesAsync();

            return(new NoContentResult());
        }
Example #6
0
        public virtual ArmOperation <ImageResource> Update(WaitUntil waitUntil, ImagePatch patch, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNull(patch, nameof(patch));

            using var scope = _imageClientDiagnostics.CreateScope("ImageResource.Update");
            scope.Start();
            try
            {
                var response  = _imageRestClient.Update(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, patch, cancellationToken);
                var operation = new ComputeArmOperation <ImageResource>(new ImageOperationSource(Client), _imageClientDiagnostics, Pipeline, _imageRestClient.CreateUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, patch).Request, response, OperationFinalStateVia.Location);
                if (waitUntil == WaitUntil.Completed)
                {
                    operation.WaitForCompletion(cancellationToken);
                }
                return(operation);
            }
            catch (Exception e)
            {
                scope.Failed(e);
                throw;
            }
        }
        public Response Update(string subscriptionId, string resourceGroupName, string imageName, ImagePatch patch, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId));
            Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName));
            Argument.AssertNotNullOrEmpty(imageName, nameof(imageName));
            Argument.AssertNotNull(patch, nameof(patch));

            using var message = CreateUpdateRequest(subscriptionId, resourceGroupName, imageName, patch);
            _pipeline.Send(message, cancellationToken);
            switch (message.Response.Status)
            {
            case 200:
            case 201:
                return(message.Response);

            default:
                throw new RequestFailedException(message.Response);
            }
        }
        internal HttpMessage CreateUpdateRequest(string subscriptionId, string resourceGroupName, string imageName, ImagePatch patch)
        {
            var message = _pipeline.CreateMessage();
            var request = message.Request;

            request.Method = RequestMethod.Patch;
            var uri = new RawRequestUriBuilder();

            uri.Reset(_endpoint);
            uri.AppendPath("/subscriptions/", false);
            uri.AppendPath(subscriptionId, true);
            uri.AppendPath("/resourceGroups/", false);
            uri.AppendPath(resourceGroupName, true);
            uri.AppendPath("/providers/Microsoft.Compute/images/", false);
            uri.AppendPath(imageName, true);
            uri.AppendQuery("api-version", _apiVersion, true);
            request.Uri = uri;
            request.Headers.Add("Accept", "application/json");
            request.Headers.Add("Content-Type", "application/json");
            var content = new Utf8JsonRequestContent();

            content.JsonWriter.WriteObjectValue(patch);
            request.Content = content;
            _userAgent.Apply(message);
            return(message);
        }
Example #9
0
        public static ImagePatch GetImageURL()
        {
            ImagePatch ip = new ImagePatch();
            //图片路径相关
            XmlDocument xmlDoc = new XmlDocument();

            //xmlDoc.Load(@"D:\Project\HCHE\ImagePatch.xml");
            xmlDoc.Load(ConfigurationSettings.AppSettings["XMLURL"] + @"ImagePatch.xml");
            XmlNode root = xmlDoc.SelectSingleNode("PublichPatch");//指向根节点

            //头像
            XmlNode xnImageUserPhotoSmall = root.SelectSingleNode("ImageUserPhotoSmall");

            ip.ImageUserPhotoSmall = xnImageUserPhotoSmall.InnerText;//读出里面的值
            XmlNode xnImageUserPhotoBig = root.SelectSingleNode("ImageUserPhotoBig");

            ip.ImageUserPhotoBig = xnImageUserPhotoBig.InnerText;//读出里面的值
            //商品主图
            XmlNode xnAccMainImage = root.SelectSingleNode("AccMainImage");

            ip.AccMainImage = xnAccMainImage.InnerText;//读出里面的值
            //商品图片
            XmlNode xnAccImage = root.SelectSingleNode("AccImage");

            ip.AccImage = xnAccImage.InnerText;//读出里面的值
            //我的车型图片
            XmlNode xnImageMyCar = root.SelectSingleNode("ImageMyCar");

            ip.ImageMyCar = xnImageMyCar.InnerText;//读出里面的值
            //配件品牌
            XmlNode xnImageBrandLogo = root.SelectSingleNode("ImageBrandLogo");

            ip.ImageBrandLogo = xnImageBrandLogo.InnerText;//读出里面的值
            //求购信息图片
            XmlNode xnImageRepair = root.SelectSingleNode("ImageRepair");

            ip.ImageRepair = xnImageRepair.InnerText;//读出里面的值
            //报修信息图片
            XmlNode xnImageProcurment = root.SelectSingleNode("ImageProcurment");

            ip.ImageProcurment = xnImageProcurment.InnerText;//读出里面的值
            //建议信息图片
            XmlNode xnImageAdvice = root.SelectSingleNode("ImageAdvice");

            ip.ImageAdvice = xnImageAdvice.InnerText;//读出里面的值
            //投诉信息图片
            XmlNode xnImageComplaints = root.SelectSingleNode("ImageComplaints");

            ip.ImageComplaints = xnImageComplaints.InnerText;//读出里面的值
            //举报信息图片
            XmlNode xnImageProsecution = root.SelectSingleNode("ImageProsecution");

            ip.ImageProsecution = xnImageProsecution.InnerText;//读出里面的值

            //授权证书
            XmlNode xnImageCertification = root.SelectSingleNode("ImageCertificate");

            ip.ImageCertificate = xnImageCertification.InnerText;//读出里面的值

            //店铺形象
            XmlNode xnImageLince = root.SelectSingleNode("ImageStore");

            ip.ImageStore = xnImageLince.InnerText;//读出里面的值
            return(ip);
        }