コード例 #1
0
        public JsonResult UpdateLesson(LessonUpdateViewModel model)
        {
            var rh = new ResponseHelper();

            if (!ModelState.IsValid)
            {
                var validations = ModelState.GetErrors();
                rh.SetValidations(validations);
            }
            else
            {
                rh = _lessonService.Update(new LessonsPerCourse
                {
                    Id      = model.Id,
                    Name    = model.Name,
                    Content = model.Content,
                    Video   = model.Video
                });
            }

            return(Json(rh));
        }
コード例 #2
0
 private bool ValidateInputs(LessonUpdateViewModel model, ServiceObjectResponse response)
 {
     float lessonPrice;
     float minimumPrice;
     if (float.TryParse(model.LessonPrice, out lessonPrice) &&
         float.TryParse(model.MinimumPrice, out minimumPrice))
     {
         if (minimumPrice != 0 && lessonPrice == 0.0)
         {
             response.StatusReason = MyMentorResources.lessonPriceIsZero;
             return false;
         }
         if (lessonPrice < minimumPrice)
         {
             return false;
         }
         return true;
     }
     return false;
 }
コード例 #3
0
        public ActionResult GetContentItemMetaData(string itemId)
        {
            var model = new LessonUpdateViewModel();
            var retriever = CategoryRetrieverFactory.GetInstance(_worldId);
            var categories =  retriever.GetCategories();
            using (var repository = RepositoryFactory.GetInstance(Session))
            {
                var clipDetails = repository.FindClipDetails(itemId);
                var currencyRetriver = new CurrencyRetriver(HttpContext, Session, repository);
                var stringManager = new StringsManager(repository);

                CurrencyDto defaultCurrency = repository.FindDefaultCurrency();
                CurrencyDto targetCurrency = currencyRetriver.GetCurrent();
                CurrencyDto sourceCurrency = clipDetails.Currency.ConvertToCurrencyDto() ?? defaultCurrency;
                var teacherFirstName = clipDetails.GetLocalizedPointerValue("teacher", "firstName");
                var teacherLastName = clipDetails.GetLocalizedPointerValue("teacher", "lastName");
                var teacherCityOfResidence = clipDetails.GetLocalizedPointerValue("teacher", "cityOfResidence");
                var clipStatusName = clipDetails.GetLocalizedPointerValue("status", "status");
                var teacherPublishingStatus =
                    (Session.GetLoggedInUser().GetPointerObject<UserAdminData>("adminData")).GetPointerObjectId(
                        "userPublishingStatus");

                var showReadingDates = (repository.FindWorlds(_worldId)).Single().ReadingDates;

                model.ShowReadingDates = showReadingDates;
                model.PortalNamePart1 = clipDetails.GetLocalizedField("portalNamePart1");
                model.PortalNamePart2 = clipDetails.GetLocalizedField("portalNamePart2");
                model.CategoryName1 = categories[0].Label;
                model.CategoryName2 = categories[1].Label;
                model.CategoryName3 = categories[2].Label;
                model.CategoryName4 = categories[3].Label;

                model.Category1Values = categories[0].Values.ToArray();
                model.Category2Values = categories[1].Values.ToArray();
                model.Category3Values = categories[2].Values.ToArray();
                model.Category4Values = categories[3].Values.ToArray();

                model.SelectedCategory1Value = clipDetails.Category1 != null ? clipDetails.Category1.ObjectId : "";
                model.SelectedCategory2Value = clipDetails.Category2 != null ? clipDetails.Category2.ObjectId : "";
                model.SelectedCategory3Value = clipDetails.Category3 != null ? clipDetails.Category3.ObjectId : "";
                model.SelectedCategory4Value = clipDetails.Category4 != null ? clipDetails.Category4.ObjectId : "";

                model.Created = clipDetails.CreatedAt.HasValue?clipDetails.CreatedAt.Value.ToString("dd/MM/yyyy"):string.Empty;
                model.Updated = clipDetails.UpdatedAt.HasValue ? clipDetails.UpdatedAt.Value.ToString("dd/MM/yyyy") : string.Empty;
                model.Version = clipDetails.Version;

                model.Remarks_he_il = clipDetails.Remarks_he_il;
                model.Remarks_en_us = clipDetails.Remarks_en_us;

                model.Performer_he_il = clipDetails.Performer_he_il;
                model.Performer_en_us = clipDetails.Performer_en_us;

                model.Description_he_il = clipDetails.Description_he_il;
                model.Description_en_us = clipDetails.Description_en_us;

                var lessonPrice = CurrencyConverter.Convert(clipDetails.Price, sourceCurrency, targetCurrency);
                var lessonPriceWithSupport = CurrencyConverter.Convert(clipDetails.SupportPrice, sourceCurrency,
                    targetCurrency);

                model.LessonPrice = lessonPrice.ToString("0.00");
                model.SupportPrice = lessonPriceWithSupport.ToString("0.00");
                model.MinimumPrice =
                    CurrencyConverter.Convert(clipDetails.GetPointerValue<double>("category3", "minPrice"),
                        sourceCurrency, targetCurrency).ToString("0.00");

                model.TeacherFirstName = string.IsNullOrEmpty(teacherFirstName) ? string.Empty : teacherFirstName;
                model.TeacherLastName = string.IsNullOrEmpty(teacherLastName) ? string.Empty : teacherLastName;

                model.TeacherResidence = teacherCityOfResidence;
                model.SelectedStatus = clipDetails.Status.ObjectId;
                model.CalendarRegional = Language.Direction == LanguageDirection.RTL ? "he" : "";

                model.IsRTL = Language.Direction == LanguageDirection.RTL;
                model.CurrencyId = clipDetails.Currency != null ? clipDetails.Currency.ObjectId : string.Empty;
                model.DefaultCurrencyId = repository.FindDefaultCurrency().ObjectId;

                model.LessonTitleTemplatePart1 = stringManager.GetTemplate(_worldId, StringTemplates.TitlePart1,
                    Language.CurrentLanguageCode);
                model.LessonTitleTemplatePart2 = stringManager.GetTemplate(_worldId, StringTemplates.TitlePart2,
                    Language.CurrentLanguageCode);

                model.StatusValues =
                    repository.FindStatusOptionsByTeacherPublishingStatusAndClipStatus(teacherPublishingStatus,
                        clipDetails.Status.ObjectId, Session.GetLoggedInUserRoleName() == RoleNames.ADMINISTRATORS);
                if (!model.StatusValues.Any(item => item.Key == clipDetails.Status.ObjectId))
                {
                    var statusValuesList = new List<KeyValuePair<string, string>>(model.StatusValues);
                    statusValuesList.Insert(0,
                        new KeyValuePair<string, string>(clipDetails.Status.ObjectId, clipStatusName));
                    model.StatusValues = statusValuesList.ToArray();
                }

                if (clipDetails.ReadingDates != null)
                {
                    foreach (var readingDate in clipDetails.ReadingDates)
                    {
                        model.ReadingDates.Add(((DateTime) readingDate).ToString("dd/MM/yyyy"));
                    }
                }

                return Json(model, JsonRequestBehavior.AllowGet);
            }
        }
コード例 #4
0
        public async Task<JsonResult> SetContentItemMetaData(LessonUpdateViewModel model)
        {
            using (var repository = RepositoryFactory.GetInstance(Session))
            {
                var response = new ServiceObjectResponse();
                var existingLesson = repository.FindClipDetails(model.ObjectId);
                var existingLessonStatusId = existingLesson.Status.ObjectId;
                var existingLessonIsActive = existingLesson.Status.GetString("status_en_us") == LessonStatus.Active;
                var stringsManager = new StringsManager(repository);

                if (ValidateInputs(model, response))
                {
                    if (existingLessonIsActive && model.SelectedStatus != existingLessonStatusId)
                    {
                        var clipsBundles = repository.FindBundlesByClipId(model.ObjectId);
                        if (clipsBundles.ClipToBundle.Any())
                        {
                            var isInActiveBundle =
                                clipsBundles.ClipToBundle.Keys.Any(
                                    o => o.Status.Status_en_us == LessonStatus.Active);

                            if (isInActiveBundle)
                            {
                                response.Status = ServiceObjectResponse.Failure;
                                response.StatusReason =
                                    stringsManager.GetLocalizedString(Strings.CannotChangeClipStatusInActiveBundle);
                                return Json(response);
                            }
                        }
                    }

                    var teacher = await repository.FindUserByName(model.TeacherName);
                    if (teacher == null)
                    {
                        response.Status = ServiceObjectResponse.Failure;
                        response.StatusReason = MyMentorResources.updateBundleTeacherNotFound;
                        return Json(response);
                    }
                    model.TeacherId = teacher.ObjectId;

                    model.UserCurrency = new CurrencyRetriver(HttpContext, Session, repository).GetCurrent();

                    await repository.UpdateClipDetails(model, _worldId);

                    response.Status = ServiceObjectResponse.Success;
                    return Json(response);
                }

                response.Status = ServiceObjectResponse.Failure;
                response.StatusReason = string.IsNullOrEmpty(response.StatusReason)
                    ? MyMentorResources.updateLessonGeneralError
                    : response.StatusReason;
                return Json(response);
            }
        }