/// <summary> /// ایجاد کننده موجودیت جدید از کلاس لینک /// </summary> /// <param name="dto"></param> /// <returns></returns> private Link LinkGenerator(CreateLinkDto dto) { Guid linkId = Guid.NewGuid(); LinkFullAddress fullAddress = new LinkFullAddress(dto.FullAddress); LinkShortAddress shortAddress = new LinkShortAddress(ShortAddressGenerator()); Link link = new Link(linkId, fullAddress, shortAddress); return(link); }
private async Task <HttpResponseMessage> PostLink(HttpClient client, string fullUrl) { var createLinkDto = new CreateLinkDto { FullUrl = fullUrl }; string json = JsonHelper.Serialize(createLinkDto); var data = new StringContent(json, Encoding.UTF8, "application/json"); return(await client.PostAsync($"/api/v1/links", data)); }
/// <summary> /// اعتبار سنجی آدرس اصلی /// </summary> /// <param name="dto"></param> /// <returns></returns> private ServiceResult FullAddressValidation(CreateLinkDto dto) { string urlPattern = "http[s]?://"; bool IsValidUrlFormat = Regex.Match(dto.FullAddress.ToLower(), urlPattern).Success; if (IsValidUrlFormat) { return(ServiceResult.Ok()); } return(ServiceResult.Fail(message: "فرمت لینک ارسالی اشتباه است" + " - " + "فرمت مورد قبول : http[s]://...")); }
public HttpResponseMessage Create([FromBody] CreateLinkDto link) { var result = _createCommand.Execute(new CreateLinkArgument() { Link = Mapper.Map <LinkModel>(link), MusicDestinations = link.MusicDestinations?.GroupBy(x => x.IsoCode.ToUpper()).ToDictionary(x => x.Key, x => x.Select(Mapper.Map <Service.Models.Link.Music.DestinationModel>).ToList()), TicketDestinations = link.TicketDestinations?.GroupBy(x => x.IsoCode.ToUpper()).ToDictionary(x => x.Key, x => x.Select(Mapper.Map <Service.Models.Link.Ticket.DestinationModel>).ToList()) }); var mapped = Mapper.Map <LinkDto>(result); return(Request.CreateResponse(HttpStatusCode.OK, mapped)); }
public IActionResult Shortener(CreateLinkViewModel model) { if (!ModelState.IsValid) { return(JsonFail($"متاسفانه لینک برای کوتاه سازی یافت نشد ...!")); } CreateLinkDto createLinkDto = new CreateLinkDto(model.FullAddress); var result = linkService.AddLink(createLinkDto); if (result.IsSuccess) { return(JsonSuccess(message: result.Message)); } return(JsonFail(message: result.Message)); }
/// <summary> /// افزودن لینک جدید /// </summary> /// <param name="dto"></param> /// <returns></returns> public ServiceResult AddLink(CreateLinkDto dto) { ///اقدام به اعتبار سنجی آدرس اصلی var fullAddressValidationResult = FullAddressValidation(dto); if (fullAddressValidationResult.IsFailure) { return(ServiceResult.Fail(message: fullAddressValidationResult.Message)); } ///اقدام به ایجاد لینک جدید در دیتابیس Link link = LinkGenerator(dto); var result = linkCommandRepository.Add(link); ///ارسال نتیجه if (result) { //برای این که در سواگر درست نمایش داده شود انگلیسی نوشتم return(ServiceResult.Ok(message: $"Short Link : {link.ShortAddress.Value}")); } //برای این که در سواگر درست نمایش داده شود انگلیسی نوشتم return(ServiceResult.Fail(message: $"Bad Format : {link.FullAddress.Value}")); }