Ejemplo n.º 1
0
        public ETravelFeed AddTravelFeed(ETravelFeed travelFeed)
        {
            using (var dmTrans = _rep.GetTransaction())
            {
                try
                {
                    var tran = dmTrans.BeginTransaction();
                    EMedia media = null;
                    if (travelFeed.ExtMediaFileJson.HasValue())
                    {
                        media = new EMedia()
                        {
                            MediaFiles = travelFeed.ExtMediaFileJson,
                            CreateTime = DateTime.Now
                        };
                        _rep.Add(media, tran);
                    }

                    if (media != null)
                    {
                        travelFeed.FeedMediaId = media.Id;
                    }
                    travelFeed.CreateTime = DateTime.Now;
                    _rep.Add(travelFeed, tran);

                    dmTrans.Commit();
                }
                catch
                {
                    dmTrans.Rollback();
                    throw;
                }
            }

            return _rep.Query<ETravelFeed, EUser, EMedia, ETravelFeed>()
                .LeftJoin<EUser>((tf, u) => tf.UserId == u.Id)
                .LeftJoin<EMedia>((tf, m) => tf.FeedMediaId == m.Id)
                .Where(p => p.Id == travelFeed.Id)
                .Select(
                    (tf, u, m) =>
                        new Columns(
                            tf,
                            u.NickName.As("ExtNickName"),
                            u.UserAvatar.As("ExtUserAvatar"),
                            m.MediaFiles.As("ExtMediaFileJson")))
                .Single();
        }
Ejemplo n.º 2
0
 public void AddMedia(EMedia media)
 {
     _rep.Add(media);
 }
Ejemplo n.º 3
0
        public ActionResult WebUploader(string createRule, bool isSaveToMedia = true)
        {
            try
            {
                Response.ContentType = "text/plain";
                Response.Charset = "UTF-8";
                var filecollection = Request.Files;
                var postedfile = filecollection.Get("filedata");
                if (postedfile == null || !createRule.HasValue() || "0,0".Equals(createRule))
                {
                    return Content("");
                }

                var compressionRatio = 100;

                var dirName = _configService.GetByKey<string>("UploadImageDir", "Images");
                var savePath = saveRootPath + "/" + dirName + "/" + DateTime.Now.Year + "/" + DateTime.Now.Month;
                if (!Directory.Exists(root + "/" + savePath)) Directory.CreateDirectory(root + "/" + savePath);
                var saveName = Guid.NewGuid() + "_0";
                var ext = postedfile.FileName.GetExtension().ToLower();
                var fullFileName = saveName + ext;
                var fullFileSavePath = savePath + "/" + fullFileName;
                postedfile.SaveAs(root + "/" + fullFileSavePath);
                var createRuleArray = createRule.Split('|');
                var index = 0;
                foreach (var item in createRuleArray)
                {
                    index++;
                    var ruleDetailArray = item.Split(',');
                    if (ruleDetailArray.Length > 1)
                    {
                        var maxLength = ruleDetailArray[0].ToInt(150);
                        var createType = "Cut";
                        switch (ruleDetailArray[1])
                        {
                            case "0":
                                createType = "DB";
                                break;
                            case "1":
                                createType = "W";
                                break;
                            case "2":
                                createType = "H";
                                break;
                            default:
                                break;
                        }

                        var fullThumbnailSavePath = savePath + "/" + saveName.Replace("_0", "_" + index) + ext;
                        ImageHelper.MakeThumbnail(root + "/" + fullFileSavePath, root + "/" + fullThumbnailSavePath,
                            maxLength, maxLength, createType, compressionRatio);
                    }
                }

                var exif = ImageHelper.GetExifMetaData(root + "/" + fullFileSavePath);
                var isSaveOriginalImage = _configService.GetByKey<bool>("UploadIsSaveOriginalImage", true);
                if (!isSaveOriginalImage)
                {
                    System.IO.File.Delete(root + "/" + fullFileSavePath);
                }

                var image = new EMediaFile()
                {
                    Path = fullFileSavePath,
                    Domain = _configService.GetByKey("UploadMediaDomain", "/"),
                    Exif = exif
                };

                if (isSaveToMedia)
                {
                    var media = new EMedia()
                    {
                        CreateTime = DateTime.Now,
                        MediaFiles = new List<EMediaFile>() {image}.ToJson(),
                    };
                    _mediaService.AddMedia(media);
                    var latlng = image.LatLng;
                    var time = image.Exif.DatePictureTaken.DisplayValue.HasValue()
                        ? image.Exif.DatePictureTaken.DisplayValue
                        : DateTime.Now.ToString();
                    return Content(new
                    {
                        MediaId = media.Id,
                        LatLng = latlng,
                        Time = time
                    }.ToJson());
                }
                else
                {
                    return Content(image.ToJson());
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
            }

            return Content("");
        }