Example #1
0
        public async Task <IHttpActionResult> PostDirNomen(HttpRequestMessage request) //DirNomen dirNomen
        {
            #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции

            //Получаем Куку
            System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"];

            // Проверяем Логин и Пароль
            Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true));

            if (!field.Access)
            {
                return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10)));
            }

            //Изменяем строку соединения
            db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true));

            //Права (1 - Write, 2 - Read, 3 - No Access)
            int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirNomens"));

            if (iRight != 1)
            {
                return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))));
            }

            //Разные Функции
            function.NumberDecimalSeparator();

            //Получам настройки
            sysSetting = await db.SysSettings.FindAsync(1);

            #endregion


            try
            {
                #region Получеие параметров

                var    paramList = request.GetQueryNameValuePairs();
                string param     = paramList.FirstOrDefault(kv => string.Compare(kv.Key, "param", true) == 0).Value;

                //Получаем "GenID"
                PartionnyAccount.Classes.Function.GenGenerate genGenerate = new Classes.Function.GenGenerate();
                string GenID = await genGenerate.ReturnGenID(db);

                //Сохраняем на диск
                string sLogo = "";

                //Для получения параметров и сохранение файла изображения
                //string root = System.Web.HttpContext.Current.Server.MapPath("~/Users/File/Images/DirNomenPhoto").ToString();
                string root     = System.Web.HttpContext.Current.Server.MapPath("~/Users/user_" + field.DirCustomersID).ToString();
                var    provider = new MultipartFormDataStreamProvider(root);
                await Request.Content.ReadAsMultipartAsync(provider).ConfigureAwait(false);

                //Проверяем размер, если больше 150КБ, Удаляем и Эксепшен
                FileInfo file = new FileInfo(provider.FileData[0].LocalFileName);
                if (file.Length / 1024 > 150)
                {
                    throw new System.InvalidOperationException("Превышен размер изображения! максимальный 150КБ.");
                }
                file = null;

                //Считываем сохранённый файл и перезаписываем его с нужным именем
                string
                    FileNameX = provider.FileData[0].Headers.ContentDisposition.FileName.Replace(@"""", ""), // чисто что бы проверить, выбран ли файл
                    FileNameY = @"\" + GenID + ".jpg";                                                       //Используется при сохранениее
                if (FileNameX != "")
                {
                    if (File.Exists(root + FileNameY))
                    {
                        throw new System.InvalidOperationException("Изображение товара с таким наименованием уже существует! Поменяйте наименование!");
                    }
                    else
                    {
                        if (param == "size40")
                        {
                            SavePictureFixed(provider.FileData[0].LocalFileName, root + FileNameY);
                        }
                        else
                        {
                            File.Copy(provider.FileData[0].LocalFileName, root + FileNameY);
                        }
                    }

                    //Получение самих параметров
                    sLogo = GenID; // root + @"/" + FileName;
                }
                File.Delete(provider.FileData[0].LocalFileName);

                #endregion


                #region Сохранение

                dynamic collectionWrapper = new
                {
                    SysGenID      = GenID,
                    SysGenIDPatch = "/Users/user_" + field.DirCustomersID + "/" + FileNameY
                };
                return(Ok(returnServer.Return(true, collectionWrapper)));

                #endregion
            }
            catch (Exception ex)
            {
                return(Ok(returnServer.Return(false, exceptionEntry.Return(ex))));
            }
        }
Example #2
0
        public async Task <IHttpActionResult> PutDirNomen(int id, DirNomen dirNomen, HttpRequestMessage request) //DirNomen dirNomen
        {
            #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции

            //Получаем Куку
            System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"];

            // Проверяем Логин и Пароль
            Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true));

            if (!field.Access)
            {
                return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10)));
            }

            //Изменяем строку соединения
            db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true));

            //Права (1 - Write, 2 - Read, 3 - No Access)
            int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirNomens"));

            if (iRight != 1)
            {
                return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))));
            }

            //Разные Функции
            function.NumberDecimalSeparator();

            //Получам настройки
            Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1);

            #endregion


            try
            {
                //Получаем "GenID"
                PartionnyAccount.Classes.Function.GenGenerate genGenerate = new Classes.Function.GenGenerate();
                string GenID = await genGenerate.ReturnGenID(db);

                //Для получения параметров и сохранение файла изображения
                string root = System.Web.HttpContext.Current.Server.MapPath("~/Users/user_" + field.DirCustomersID + "/").ToString();

                string FileNameY = @"/" + GenID + ".jpg"; //Используется при сохранениее


                byte[] bytes = Convert.FromBase64String(dirNomen.photoWebCam);
                System.Drawing.Image image;
                using (MemoryStream ms = new MemoryStream(bytes)) image = System.Drawing.Image.FromStream(ms);
                image.Save(root + FileNameY, System.Drawing.Imaging.ImageFormat.Jpeg);

                //Проверяем размер, если больше 150КБ, Удаляем и Эксепшен
                var fileLength = new FileInfo(root + FileNameY).Length;
                if (fileLength / 1024 > 150)
                {
                    File.Delete(root + FileNameY);
                    throw new System.InvalidOperationException("Превышен размер изображения! максимальный 150КБ.");
                }



                #region Сохранение

                dynamic collectionWrapper = new
                {
                    SysGenID      = GenID,
                    SysGenIDPatch = "/Users/user_" + field.DirCustomersID + "/" + FileNameY
                };
                return(Ok(returnServer.Return(true, collectionWrapper)));

                #endregion
            }
            catch (Exception ex)
            {
                return(Ok(returnServer.Return(false, exceptionEntry.Return(ex))));
            }
        }