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}" })); }
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); }
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); }
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()); }