public void _SaveGeneralInfo_ValidRequest_ReturnsJsonResult() { // Arrange var @event = new Event(); @event.FillWithDefaultValues(); @event = _context.Events.Add(@event); var edition = new Edition(); edition.FillWithDefaultValues(@event); edition = _context.Editions.Add(edition); var editionTranslation = new EditionTranslation(); editionTranslation.FillWithDefaultValues(edition); _context.EditionTranslations.Add(editionTranslation); var eventDirector = new EventDirector(); eventDirector.FillWithDefaultValues(@event); eventDirector.IsPrimary = true; _context.EventDirectors.Add(eventDirector); _context.SaveChanges(); var model = Mapper.Map <Edition, EditionEditGeneralInfoModel>(edition); // Act var result = _controller._SaveGeneralInfo(model); // Assert Assert.IsInstanceOf <JsonResult>(result); Assert.IsTrue(result.GetValue <bool>("success")); }
public static void FillWithDefaultValues(this EditionTranslation editionTranslation, Edition edition) { editionTranslation.Edition = edition; editionTranslation.LanguageCode = "en-gb"; editionTranslation.CreateTime = DateTime.Now; editionTranslation.CreateUser = 1; editionTranslation.UpdateUser = 1; }
private string UploadEventImage(EditionTranslation editionTranslation, string imageUrl, bool isWebLogo) { const string remoteImageDomain = "https://www.hyve.group/"; try { if (string.IsNullOrWhiteSpace(imageUrl)) { return(null); } // D:\PROJECTS\ITE.CED\Ced.Web\content\images\edition\logo var newFileName = editionTranslation.EditionId + "-" + editionTranslation.Edition.EditionName.Trim() .Replace(" ", "") .Replace("'", "") .Replace("&", " ") .Replace("\"", " ") .ToLower() + "-" + editionTranslation.LanguageCode.ToLower() + Path.GetExtension(imageUrl); var remoteImgPath = remoteImageDomain + imageUrl.Replace("~/", ""); remoteImgPath = remoteImgPath.Substring(0, remoteImgPath.IndexOf(".aspx", StringComparison.Ordinal)); var folderName = isWebLogo ? EditionImageType.WebLogo.GetAttribute <ImageAttribute>().Key : EditionImageType.PeopleImage.GetAttribute <ImageAttribute>().Key; var localPath = AppDomain.CurrentDomain.BaseDirectory + @"content\images\edition\" + $@"{folderName}\" + newFileName; var webClient = new WebClient(); try { webClient.DownloadFile(remoteImgPath, localPath); } catch (Exception exc) { var extraInfo = "remoteImgPath: " + remoteImgPath + " | EditionId: " + editionTranslation.EditionId; var log = CreateInternalLog(exc, extraInfo); ExternalLogHelper.Log(log, LoggingEventType.Error); if (isWebLogo) { // When the image cannot be found... var kenticoEditions = _unitOfWork.EventRepository.Context.Clnd_KenticoEvents.Where(x => x.EventBEID == editionTranslation.Edition.AxEventId); Clnd_KenticoEvents kenticoEdition = null; if (kenticoEditions.Any()) { kenticoEdition = kenticoEditions.First(); } if (!string.IsNullOrWhiteSpace(kenticoEdition?.EventImage)) { var lostImageUrl = ""; try { // sample: https://www.hyve.group/getmedia/fe18dac0-002d-42a2-b293-2f79a41d8028/anystring.aspx const int guidLength = 36; const string strGetMedia = "/getmedia/"; var indexGetMedia = kenticoEdition.EventImage.IndexOf(strGetMedia, StringComparison.Ordinal); var indexStart = indexGetMedia + strGetMedia.Length; if (indexStart == -1) { return(null); } if (kenticoEdition.EventImage.Length < indexStart + guidLength) { return(null); } var guid = kenticoEdition.EventImage.Substring(indexStart, guidLength); lostImageUrl = $"{remoteImageDomain}getmedia/{guid}/anystring.aspx"; webClient.DownloadFile(lostImageUrl, localPath); return(newFileName); } catch (Exception exc2) { var extraInfo2 = "lostImageUrl: " + lostImageUrl + " | EditionId: " + editionTranslation.EditionId + " | 2nd attempt"; var log2 = CreateInternalLog(exc2, extraInfo2); ExternalLogHelper.Log(log2, LoggingEventType.Error); return(null); } } return(null); } return(null); } return(newFileName); } catch (Exception exc) { var extraInfo = "EditionId: " + editionTranslation.EditionId; var log = CreateInternalLog(exc, extraInfo); ExternalLogHelper.Log(log, LoggingEventType.Error); return(null); } }