Example #1
0
        private void SaveUploadedPin(HttpContext context)
        {
            int      board        = int.Parse(context.Request.Params["board"]);
            string   desc         = context.Request.Params["desc"];
            string   img          = context.Request.Params["img"];
            IHash    fnv1a        = HashFactory.Hash64.CreateFNV1a();
            IHash    crc64        = HashFactory.Checksum.CreateCRC64b();
            IHash    murmur2      = HashFactory.Hash64.CreateMurmur2();
            Uri      url          = new Uri(img);
            string   image        = url.Segments.Last();
            string   fp           = Path.Combine(Common.Temp, Common.UserID.ToString(), image);
            FileInfo fInfo        = new FileInfo(fp);
            string   destRel      = Common.UploadedImageRelPath + Common.UserID;
            string   dest         = Common.UploadedImagePath + Common.UserID;
            string   destFileName = Common.MoveAndRenameFileIfExists(fInfo, dest);
            string   relPath      = Common.UserID + "/" + destFileName;

            byte[] _d = File.ReadAllBytes(Path.Combine(dest, destFileName));
            ulong  _crc64;
            ulong  _murmur2;
            ulong  _fnv1a;
            short  height, width;

            CalcHash(_d, out _crc64, out _murmur2, out _fnv1a, out height, out width);
            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    Nails.edmx.Images i = new Nails.edmx.Images();
                    i.CRC64              = _crc64;
                    i.MURMUR2            = _murmur2;
                    i.FNV1a              = _fnv1a;
                    i.Image_Height       = height;
                    i.Image_Width        = width;
                    i.Uploaded           = true;
                    i.Tagged             = true;
                    i.RelativeImage_Path = relPath;
                    this.GetNailsProdContext.Images.AddObject(i);
                    this.GetNailsProdContext.SaveChanges();
                    Nails.edmx.BoardsImagesMapping bim = new Nails.edmx.BoardsImagesMapping();
                    bim.BoardID     = board;
                    bim.ImageID     = i.ID;
                    bim.Image_Title = desc;
                    bim.UserID      = Common.UserID.Value;
                    this.GetNailsProdContext.BoardsImagesMapping.AddObject(bim);
                    this.GetNailsProdContext.SaveChanges();
                    scope.Complete();
                    context.Response.Write(JsonConvert.SerializeObject(new { PinID = ((ulong)bim.ID + _crc64).ToString() }));
                }
                catch (Exception e)
                {
                    throw;
                }
                finally
                {
                    scope.Dispose();
                }
            }
        }
Example #2
0
        private void SaveRepin(HttpContext context)
        {
            int    id     = int.Parse(context.Request.Params["id"]);
            int    board  = int.Parse(context.Request.Params["board"]);
            string desc   = context.Request.Params["desc"];
            string source = context.Request.Params["source"];

            Nails.edmx.BoardsImagesMapping bim = new Nails.edmx.BoardsImagesMapping();
            bim.ImageID     = id;
            bim.Source      = source;
            bim.Image_Title = desc;
            bim.UserID      = Common.UserID;
            bim.BoardID     = board;
            this.GetNailsProdContext.BoardsImagesMapping.AddObject(bim);
            this.GetNailsProdContext.SaveChanges();
        }
Example #3
0
        private void SaveAddedPin(HttpContext context)
        {
            int          board            = int.Parse(context.Request.Params["board"]);
            string       desc             = context.Request.Params["desc"];
            string       img              = context.Request.Params["img"];
            string       destRel          = Common.UploadedImageRelPath + Common.UserID;
            string       dest             = Common.UploadedImagePath + Common.UserID;
            string       destFileName     = Guid.NewGuid().ToString() + ".jpg";
            string       destFileFullPath = Path.Combine(dest, destFileName);
            WebClient    client           = new WebClient();
            MemoryStream ms = new MemoryStream(client.DownloadData(img));

            using (Image image = Image.FromStream(ms))
            {
                if (!Directory.Exists(dest))
                {
                    Directory.CreateDirectory(dest);
                }
                image.Save(destFileFullPath, ImageFormat.Jpeg);
            }
            string relPath = Common.UserID + "/" + destFileName;

            byte[] _d = File.ReadAllBytes(destFileFullPath);
            ulong  _crc64;
            ulong  _murmur2;
            ulong  _fnv1a;
            short  height, width;

            CalcHash(_d, out _crc64, out _murmur2, out _fnv1a, out height, out width);
            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    Nails.edmx.Images i = new Nails.edmx.Images();
                    i.CRC64              = _crc64;
                    i.MURMUR2            = _murmur2;
                    i.Tagged             = true;
                    i.FNV1a              = _fnv1a;
                    i.Image_Height       = height;
                    i.Image_Width        = width;
                    i.Uploaded           = true;
                    i.RelativeImage_Path = relPath;
                    Nails.edmx.NailsProdEntities _context = this.GetNailsProdContext;
                    _context.Images.AddObject(i);
                    _context.SaveChanges();
                    Nails.edmx.BoardsImagesMapping bim = new Nails.edmx.BoardsImagesMapping();
                    bim.BoardID     = board;
                    bim.ImageID     = i.ID;
                    bim.Image_Title = desc;
                    bim.Source      = img;
                    bim.UserID      = Common.UserID.Value;
                    _context.BoardsImagesMapping.AddObject(bim);
                    _context.SaveChanges();
                    scope.Complete();
                    context.Response.Write(JsonConvert.SerializeObject(new { PinID = (_crc64 + (ulong)bim.ID).ToString() }));
                }
                catch (Exception e)
                {
                    throw;
                }
                finally
                {
                    scope.Dispose();
                }
            }
        }