Esempio n. 1
0
        public async Task <IActionResult> AddResource(AddResourceRequest model)
        {
            var resource = await _resourceService.AddNewResource(_mapper.Map <AddResourceCommand>(model));

            return(Ok(new AddResourceResponse
            {
                Id = resource.Id,
                Uri = $"resource/{resource.Id}"
            }));
        }
Esempio n. 2
0
        void ProcAddResource()
        {
            OutputManager.Ui.Write("What is the name of this new resouce?");
            string resourceName = Console.ReadLine();

            OutputManager.Ui.Write("What is the contents of this new resouce?");
            string resourceContent = Console.ReadLine();
            string resourceId      = EZHash.GetHashString(resourceName);

            Messages.AddResourceRequest  addResourceReq      = new AddResourceRequest(this.localNode, resourceId, resourceName, resourceContent);
            Messages.Message             tmpResponse         = localNode.SendMessage(addResourceReq);
            Messages.AddResourceResponse addResourceResponse = new AddResourceResponse(tmpResponse.ToString());
            if (addResourceResponse.resourceAddedSuccessfully)
            {
                OutputManager.Ui.Write($"The resource \"{resourceName}\" was added successfully.");
            }
            else
            {
                OutputManager.Ui.Write($"Failed to add the resource \"{resourceName}\"");
            }
        }
        // Send a Message to a remote node
        public Message SendMessage(Message msg)
        {
            Message responseMsg; // Use to send the response

            if (msg is AddResourceRequest && this.succNode.Id == this.Id)
            {
                AddResourceRequest arm = msg as AddResourceRequest;
                SetLocalResource(arm.resourceId, arm.resourceName, arm.resourceContent);
                responseMsg = new AddResourceResponse(this, arm.resourceId, arm.resourceName);
            }
            else if (msg is GetResourceRequest && this.succNode.Id == this.Id)
            {
                GetResourceRequest grm     = msg as GetResourceRequest;
                string             content = GetLocalResource(grm.resourceId);
                responseMsg = new GetResourceResponse(this, grm.resourceId, "LOCALNODE ERR: RESOURCE NAME UNKNOWN!", content);
            }
            else
            {
                responseMsg = clientComponent.SendMsg(msg);
            }
            return(responseMsg);
        }
Esempio n. 4
0
        public override async Task <ResourceReply> AddResource(AddResourceRequest request, ServerCallContext context)
        {
            var reply = new ResourceReply();
            var type  = GetContentType(request.Type);
            var user  = await _userService.GetUser(context.GetHttpContext());

            if (user == null)
            {
                reply.Error = Error.NeedLogin;
                return(reply);
            }

            if (!user.HasWritePermission())
            {
                reply.Error = Error.NoPermission;
                return(reply);
            }

            if (!Guid.TryParse(request.ParentId, out var id))
            {
                reply.Error = Error.InvalidArguments;
                return(reply);
            }

            var parent = await _service.All().Where(i => i.Id == id).FirstOrDefaultAsync();

            if (parent == null)
            {
                reply.Error = Error.NoSuchEntity;
                return(reply);
            }

            var file = new File
            {
                Type      = (int)FileType.Resource,
                Name      = Guid.NewGuid().ToString(),
                Parent    = parent,
                Created   = DateTime.Now,
                Modified  = DateTime.Now,
                Published = DateTime.Now,
                Private   = (ulong)request.Private
            };

            file.Path = JoinPath(parent.Path, file.Name);
            if (!string.IsNullOrWhiteSpace(request.TextContent))
            {
                file.Content = await _contentService.Add(_resourcesGroup, request.TextContent);
            }
            else
            {
                file.Content = await _contentService.Add(_resourcesGroup, stream =>
                {
                    request.Content.WriteTo(stream);
                    return(Task.FromResult(true));
                }, string.IsNullOrWhiteSpace(type)?null : type);
            }

            file = await _service.Add(file);

            reply.Id        = file.Id.ToString();
            reply.ContentId = file.Content;
            return(reply);
        }
Esempio n. 5
0
        public override ApiHandlerOutput Process(ApiInputHandler input)
        {
            AddResourceRequest request = GetEntity <AddResourceRequest>(input);

            Guid domainId = Guid.Parse(request.Domain);

            using (SqlConnection connection = new SqlConnection(Settings.Current.StorageSource))
            {
                connection.Open();

                using (SqlCommand command = new SqlCommand("Zesty_Resource_Add", connection))
                {
                    command.CommandType = CommandType.StoredProcedure;

                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@url", Value = request.Url.Trim()
                    });
                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@ParentId", Value = !string.IsNullOrEmpty(request.ParentId) ? Guid.Parse(request.ParentId) : (Object)DBNull.Value
                    });
                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@isPublic", Value = request.IsPublic ? 1 : 0
                    });
                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@requireToken", Value = request.RequireToken ? 1 : 0
                    });
                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@order", Value = request.Order
                    });
                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@label", Value = !string.IsNullOrEmpty(request.Label) ? request.Label.Trim() : (Object)DBNull.Value
                    });
                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@title", Value = !string.IsNullOrEmpty(request.Title) ? request.Title.Trim() : (Object)DBNull.Value
                    });
                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@image", Value = !string.IsNullOrEmpty(request.Image) ? request.Image.Trim() : (Object)DBNull.Value
                    });
                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@type", Value = !string.IsNullOrEmpty(request.Type) ? request.Type.Trim() : (Object)DBNull.Value
                    });
                    command.Parameters.Add(new SqlParameter()
                    {
                        ParameterName = "@domain", Value = domainId
                    });

                    command.ExecuteNonQuery();
                }
            }

            return(GetOutput());
        }