private void AddLinkStatuses(AddLinkRequest addLinkRequest, string linkId) { dataFlowStatus.Links.Add(new LinkStatus(linkId, addLinkRequest.SourceId, addLinkRequest.TargetId, addLinkRequest.SourceMapLink, addLinkRequest.TargetMapLink)); }
public async Task <ActionResult <LinkDto> > PostLink([FromBody] CreateLinkDto?createLinkDto) { var request = new AddLinkRequest(createLinkDto?.FullUrl); Link link = await _mediator.Send(request); var linkDto = _mapper.Map <LinkDto>(link); return(CreatedAtAction(nameof(GetLink), new { code = linkDto.ShortCode }, linkDto)); }
public void AddLink(AddLinkRequest addLinkRequest) { var linkId = GenerateLinkId(); var link = new Link(linkId, dataFlowFacade.GetNode(addLinkRequest.SourceId), dataFlowFacade.GetNode(addLinkRequest.TargetId));/*, TODO fix maplinks*/ dataFlowFacade.AddLink(link); AddLinkStatuses(addLinkRequest, linkId); progress.Report(dataFlowStatus); }
/// <summary> /// Adds a download link to the given device. /// </summary> /// <param name="request">Contains informations like the link itself or the priority. If you want to use multiple links sperate them with an ';' char.</param> public bool AddLinks(AddLinkRequest request) { request.Links = request.Links.Replace(";", "\\r\\n"); var json = JsonConvert.SerializeObject(request); var param = new[] { json }; var response = ApiHandler.CallAction <DefaultResponse <object> >(Device, "/linkgrabberv2/addLinks", param, JDownloaderHandler.LoginObject, true); return(response != null); }
public async Task <ActionResult <AddLinkResponse> > CreateLink([FromBody] AddLinkRequest request) { try { await this.createNewLink.ExecuteUseCase(request.FileName, request.OriginalFileName, request.NumberDownloads, request.Password, request.CreatedBy); throw new NotImplementedException(); } catch (Exception except) { return(BadRequest(except.Message)); } }
public void AddLink(IScenario scenario, AddLinkRequest addLinkRequest) { scenarioContainer.GetDataFlow(scenario).AddLink(addLinkRequest); }
public async Task <IActionResult> AddLink([FromBody] AddLinkRequest request, [FromServices] AliasKeyService.AliasKeyService keyService) { if (request == null || !ModelState.IsValid) { return(BadRequest()); } // TODO regex test incoming url for validity if (!request.Url.StartsWith("http")) { request.Url = "http://" + request.Url; } request.Url = new Uri(request.Url).ToString(); // this will standardize the url and lowercase approprate parts AddLinkResponse response = new AddLinkResponse() { OriginalUrl = request.Url }; string alias = null; bool insert = false; if (!string.IsNullOrWhiteSpace(request.Alias)) { // check if alias is already used in db string originalUrl = await _unitOfWork.LinksRepository.GetOriginalUrlByAlias(request.Alias); if (originalUrl != null) { return(Conflict()); // alias is already used } alias = request.Alias; insert = true; } else { // first check if the link already exists alias = await _unitOfWork.LinksRepository.GetAliasByLink(request.Url); if (alias == null) { alias = await keyService.GetKey(); insert = true; } } if (insert) { Link link = new Link() { Alias = alias, CreationDateTime = DateTime.UtcNow, OriginalUrl = request.Url }; _unitOfWork.LinksRepository.Insert(link); await _unitOfWork.SaveAsync(); } // TODO inject base url from configuration for the shortened url response.Link = $"{Request.Scheme}://{Request.Host}/{alias}"; return(Ok(response)); }