public virtual void Add(long id) { target(Create, id); String dataType = ctx.Get("dataType"); String name = ctx.web.UrlDecode(ctx.Get("name")); String dataLink = ctx.Get("dataLink"); if (Entity.GetType(dataType) == null) { echo(lang("exTypeError")); return; } set("name", name); set("dataType", dataType); set("dataLink", dataLink); Type et = Entity.GetType(dataType); IShareData targetData = ndb.findById(et, id) as IShareData; IShareInfo shareInfo = targetData.GetShareInfo(); String shareHtml = feedService.GetHtmlValue(shareInfo.GetShareBodyTemplate(), shareInfo.GetShareBodyData("#"), null); set("shareContent", shareHtml); }
public static String getFavoriteLink(MvcContext ctx, IShareData data, String name, String dataLink) { String queryParam = "?dataType=" + data.GetType().FullName + "&name=" + ctx.web.UrlDecode(name) + "&dataLink=" + dataLink; return(ctx.link.To(new Common.ShareController().Add, data.Id) + queryParam); }
/// <inheritdoc /> public async Task <bool> Share(string requestingUserId, IShareData shareData) { var emailAddresses = shareData.EncryptedKeys.Keys; var userIds = await userCollection .AsQueryable() .Where(x => emailAddresses.Contains(x.Email)) .Select(x => new { Id = x.Id, Email = x.Email }) .ToListAsync(); var mappedValues = userIds.ToDictionary(x => x.Id, x => shareData.EncryptedKeys[x.Email]); var models = new List <WriteModel <FileRevisionDto> >(); foreach (var file in shareData.Files) { foreach (var revision in file.Revisions) { var accessKeys = new List <AccessKeyDto>(); foreach (var kv in revision.AccessKeys) { var userId = kv.Key; var accessKey = kv.Value; if (userId != requestingUserId) { throw new Exception("Invalid user"); } accessKeys.Add(new AccessKeyDto { SymmetricEncryptedFileKey = accessKey.SymmetricEncryptedFileKey, IssuerId = accessKey.IssuerId, UserId = userId }); } var filter = Builders <FileRevisionDto> .Filter.Eq(x => x.Id, revision.RevisionId); var update = Builders <FileRevisionDto> .Update.PushEach(x => x.AccessKeys, accessKeys); var upsertOne = new UpdateOneModel <FileRevisionDto>(filter, update) { IsUpsert = true }; models.Add(upsertOne); } } var e = await fileRevisionCollection.BulkWriteAsync(models); return(true); }
public virtual void Create(long id) { User creator = (User)ctx.viewer.obj; String dataType = ctx.Post("dataType"); String name = ctx.Post("name"); String dataLink = ctx.Post("dataLink"); Type et = Entity.GetType(dataType); IShareData targetData = ndb.findById(et, id) as IShareData; IShareInfo shareInfo = targetData.GetShareInfo(); Share share = new Share(); share.Creator = creator; share.DataType = typeof(Share).FullName; share.TitleTemplate = shareInfo.GetShareTitleTemplate(); share.TitleData = shareInfo.GetShareTitleData(); share.BodyTemplate = shareInfo.GetShareBodyTemplate(); share.BodyData = shareInfo.GetShareBodyData(dataLink); share.BodyGeneral = ctx.Post("Comment"); Result result = shareService.Create(share); if (result.HasErrors) { echoToParent(result.ErrorsHtml); } else { feedService.publishUserAction(share); shareInfo.addNotification(creator.Name, toUser(creator)); echoToParent(lang("opok")); } }
public static String getFavoriteLink( MvcContext ctx, IShareData data, String name, String dataLink ) { String queryParam = "?dataType=" + data.GetType().FullName + "&name=" + ctx.web.UrlDecode( name ) + "&dataLink=" + dataLink; return ctx.link.To( new Common.ShareController().Add, data.Id ) + queryParam; }
public ShareSaleBusiness(IShareData shareData, ILogger <ShareSaleBusiness> logger) { _shareData = shareData ?? throw new ArgumentNullException(nameof(shareData)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
/// <inheritdoc /> public async Task <bool> Share(string requestingUserId, IShareData shareData) { throw new NotImplementedException(); }