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;
 }
Example #3
0
        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);
            }
        }