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(); }
public void AddMedia(EMedia media) { _rep.Add(media); }
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(""); }