示例#1
0
 public async Task <IActionResult> IsHandleUnique([FromQuery(Name = "Shop.Handle")] string handle)
 {
     if (!string.IsNullOrWhiteSpace(handle))
     {
         return(Json(!await _handles.HandleExists(handle, "Organization")));
     }
     else
     {
         return(NotFound());
     }
 }
示例#2
0
        public async Task <BaseObject> Create(ActivityDeliveryContext ctx, Create create)
        {
            if (ctx.HasWritten)
            {
                var publisher = create.GetPublisher();
                if (publisher != null && publisher.PublicId.IsLocal && ctx.item.obj != null && ctx.item.obj.PublicId.IsLocal && ctx.item.obj.tag != null && ctx.item.obj.tag.items.Any())
                {
                    var tags = ctx.item.obj.tag.items.Select(t => new TagModel {
                        Tag = t.content
                    }).ToList();
                    await _tags.Save(tags, publisher.UserId.Value, ctx.item.obj.PublicId);
                }
            }
            else
            {
                var publisherId = create.GetPublisher()?.PublicId;
                if (publisherId != null)
                {
                    if (create.obj.objectId == null && (create.obj.PeerId == null || create.obj.PeerId == 0))
                    {
                        create.published = DateTime.UtcNow;
                        await _ids.UploadObject(publisherId, create.obj);
                    }
                }
                else
                {
                    throw new ArgumentNullException(nameof(publisherId));
                }

                if (create.obj != null && create.obj is ActorObject actor && !string.IsNullOrWhiteSpace(actor.preferredUsername))
                {
                    if (await _handles.HandleExists(actor.preferredUsername, actor.type))
                    {
                        throw new ArgumentException($"{actor.type} preferredUsername taken", nameof(actor.preferredUsername));
                    }
                }
            }
            return(null);
        }