//public MemoryStream Resize(string path, Qualitiers qualitier)
        //{
        //    FileStream input = System.IO.File.OpenRead(path);
        //    MemoryStream resultStream = new MemoryStream();
        //    if (qualitier.Height==0 && qualitier.Widht==0)
        //    {
        //        input.CopyTo(resultStream);
        //    }
        //    else
        //    {
        //        ImageJob job = new ImageJob(input, resultStream, new Instructions
        //        {
        //            Width = qualitier.Widht,

        //            Height = qualitier.Height,
        //            JpegQuality = qualitier.Quality,

        //            Mode = TypesComparision.GetInstance().Convert(qualitier.Fitmode)
        //        });

        //        job.Build();
        //    }

        //    resultStream.Seek(0, SeekOrigin.Begin);

        //    return resultStream;
        //}

        public MemoryStream Resize(string path, Qualitiers qualitier)
        {
            FileStream   input        = System.IO.File.OpenRead(path);
            MemoryStream resultStream = new MemoryStream();
            ImageJob     job;

            if (qualitier.Height == 0 && qualitier.Widht == 0)
            {
                job = new ImageJob(input, resultStream, new Instructions
                {
                    JpegQuality = qualitier.Quality,

                    Mode = TypesComparision.GetInstance().Convert(qualitier.Fitmode)
                });
            }
            else
            {
                job = new ImageJob(input, resultStream, new Instructions
                {
                    Width = qualitier.Widht,

                    Height      = qualitier.Height,
                    JpegQuality = qualitier.Quality,

                    Mode = TypesComparision.GetInstance().Convert(qualitier.Fitmode)
                });
            }
            job.Build();

            resultStream.Seek(0, SeekOrigin.Begin);

            return(resultStream);
        }
        public async Task <string> UploadPublicPictureCompresser()
        {
            HttpFileCollection filecol = HttpContext.Current.Request.Files;

            PictureValidation.GetInstance().CompleteValidations(filecol);
            string uploadPath = PictureHandling.GetInstance().HandlingUpdatePublicDirectories();

            var multipartFormDataStreamProvider = new UploadMultipartFormProvider(uploadPath);

            await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

            string _localFileName = multipartFormDataStreamProvider
                                    .FileData.Select(multiPartData => multiPartData.LocalFileName).FirstOrDefault();

            string withoutextension = _localFileName.Split('.')[0];

            #region Qualitier
            var        qualitiesparam = HttpContext.Current.Request.Params["qualitier"];
            Qualitiers q = JsonConvert.DeserializeObject <Qualitiers>(qualitiesparam);
            #endregion

            using (System.IO.MemoryStream ms = PictureHandling.GetInstance().Resize(_localFileName, q))
            {
                ////with no compress;
                //Image img = System.Drawing.Image.FromStream(ms);

                //img.Save(withoutextension + "-th" + ".jpg");

                //with compress;
                Image             img = System.Drawing.Image.FromStream(ms);
                EncoderParameters eps = new EncoderParameters(1);
                eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 90L);
                string         mimetype = GetMimeType(new System.IO.FileInfo(_localFileName).Extension);
                ImageCodecInfo ici      = GetEncoderInfo(mimetype);
                img.Save(withoutextension + "-th" + ".jpg", ici, eps);
            }

            return(JsonConvert.SerializeObject(new FileResult
            {
                FileName = Path.GetFileName(_localFileName),
                FileLength = new FileInfo(_localFileName).Length,
                LocalFilePath = Cryptography.Encrypt(_localFileName),
            }));
        }