/// <summary> /// دریافت آدرس اصلی از آدرس کوتاه /// </summary> /// <param name="shortAddress"></param> /// <param name="visitorIpAddress"></param> /// <returns></returns> public ServiceResult <string> GetFullAddressByShortLink(string shortAddress, string visitorIpAddress) { ///اقدام به اعتبار سنجی آدرس اصلی var shortAddressValidationResult = ShortAddressValidation(shortAddress); if (shortAddressValidationResult.IsFailure) { return(ServiceResult <string> .Fail(message : shortAddressValidationResult.Message)); } ///اقدام به دریافت لینک به وسیله آدرس کوتاه Link link = linkQueryRepository.GetByShortAddress(shortAddress); if (link == null) { return(ServiceResult <string> .Fail("برای لینک کوتاه شده لینک کاملی یافت نشد")); } ///اقدام به ایجاد لینکویزیت جدید در دیتابیس LinkVisit linkVisit = LinkVisitGenerator(link.Id, visitorIpAddress); var result = linkVisitCommandRepository.Add(linkVisit); if (!result) { return(ServiceResult <string> .Fail("خطا در ثبت آمار")); } ///ارسال نتیجه return(ServiceResult <string> .Ok(value : link.FullAddress.Value)); }
/// <summary> /// ایجاد کننده موجودیت جدید از کلاس لینکویزیت /// </summary> /// <param name="linkId"></param> /// <param name="visitorIpAddress"></param> /// <returns></returns> private LinkVisit LinkVisitGenerator(Guid linkId, string visitorIpAddress) { Guid linkVisitId = Guid.NewGuid(); DateTime visitDateTime = DateTime.Now; LinkVisit linkVisit = new LinkVisit(linkVisitId, LinkId.FromGuid(linkId), visitorIpAddress, visitDateTime); return(linkVisit); }
public bool Add(LinkVisit linkVisit) { try { _dbContext.LinkVisit.Add(linkVisit); _dbContext.SaveChanges(); return(true); } catch (Exception exception) { string message = exception.GetSqlStringError(); _logger.LogError(exception: exception, message: message); return(false); } }