public static string GetWorldId(HttpContextBase httpContext, HttpSessionStateBase session) { using (var reposotory = RepositoryFactory.GetInstance(session)) { var contentTypeRetriver = new WorldContentTypeRetriver(httpContext, reposotory); var worldId = contentTypeRetriver.GetWorldContentTypeId(); if (string.IsNullOrEmpty(worldId)) { httpContext.Response.Redirect("/"); } return worldId; } }
public async Task<ActionResult> Index() { var model = new HomePageViewModel(); using (var repository = RepositoryFactory.GetInstance(Session)) { var worldRetriver = new WorldContentTypeRetriver(HttpContext, repository); await MyMentorUserManager.LoginWithAuthCookie(Session, HttpContext, repository); model.BannerName = worldRetriver.GetContentTypeName(); model.ContentWorlds = worldRetriver.GetWorldsByRole(Session.GetLoggedInUser(),Session.GetLoggedInUserRoleName()); return View("index", model); } }
public string GetContentTypeDisplayName() { var worldRetriver = new WorldContentTypeRetriver(HttpContext); using (var repository = RepositoryFactory.GetInstance(Session)) { IEnumerable<WorldContentTypeDto> result = null; result = repository.FindWorlds(); var selectedWorld = result.SingleOrDefault(item => item.FixedId == worldRetriver.GetContentTypeName()); string displayName = string.Empty; if (selectedWorld != null) { displayName = selectedWorld.GetLocalizedField("value"); displayName = string.Concat(MyMentorResources.lblWorldDisplayName, " ", displayName); } return displayName; } }
/// <summary> /// /// </summary> /// <param name="cartItemModel"></param> /// <param name="contentItem"></param> /// <param name="repository"></param> /// <param name="purchase"></param> /// <param name="existingPurchase"></param> /// <returns>update shopping cart</returns> private Purchase AddToCartInternal(ShoppoingCartItemModel cartItemModel, ParseObject contentItem, ParseRepository repository, Purchase existingPurchase, string previosDemoId) { var currentUser = Session.GetLoggedInUser(); var isLessson = cartItemModel.ContentItemType.Contains("lesson"); var isDemo = cartItemModel.ContentItemType.Contains("demo"); var includingSupport = cartItemModel.ContentItemType.Contains("support"); var defaultCurrency = repository.FindDefaultCurrency(); var worldRetriever = new WorldContentTypeRetriver(HttpContext, repository); CurrencyDto contentItemCurrency = null; CurrencyDto userCurrency = null; userCurrency = Task.Run(() => currentUser.GetPointerObject<Currency>("currency")).Result.ConvertToCurrencyDto(); float contentItemPrice; float contentItemSupportPrice; string purchaseStatusCode; var clips = new List<string>(); string clipId = "1"; string bundleId = ""; string objectId = ""; if (isLessson) { var clip = (Clip)contentItem; var isAdminOrCurrenctUser = clip.Teacher.ObjectId == currentUser.ObjectId || Session.GetLoggedInUserRoleName() == RoleNames.ADMINISTRATORS; clipId = clip.ObjectId; contentItemCurrency = clip.Currency.ConvertToCurrencyDto(); contentItemPrice = clip.Price; contentItemSupportPrice = includingSupport ? clip.SupportPrice : 0; purchaseStatusCode = isAdminOrCurrenctUser ? PurchaseStatusCodes.LessonIsActive : PurchaseStatusCodes.LessonIsInBaskert; } else { var bundle = (Bundle)contentItem; bundleId = bundle.ObjectId; contentItemCurrency = bundle.Currency.ConvertToCurrencyDto(); contentItemPrice = bundle.Price; contentItemSupportPrice = includingSupport ? bundle.SupportPrice : 0; purchaseStatusCode = PurchaseStatusCodes.PackageIsInBasket; clips = bundle.ClipsInBundle.Select(x => x.ObjectId).ToList(); } PurchaseDto purchaseDto = null; if (isDemo) { purchaseDto = new PurchaseDto { ObjectId = existingPurchase != null ? existingPurchase.ObjectId : null, ClipId = clipId, BundleId = bundleId, ClipKind = ClipPurchaseTypes.Demo, PurchaseStatusCode = PurchaseStatusCodes.DemoOrdered, PurchaseStatusDate = DateTime.Now, UserKey = currentUser.ObjectId, WorldId = worldRetriever.GetWorldContentTypeId() }; } else { if (!string.IsNullOrEmpty(previosDemoId)) { objectId = previosDemoId; } if (existingPurchase != null) { objectId = existingPurchase.ObjectId; } purchaseDto = new PurchaseDto { ObjectId = objectId, ClipId = clipId, BundleId = bundleId, ClipKind = isLessson ? ClipPurchaseTypes.Lesson : ClipPurchaseTypes.Bundle, UserCurrencyId = currentUser.GetPointerObjectId("currency"), Price = CurrencyConverter.Convert(contentItemPrice, contentItemCurrency, userCurrency), PriceNIS = CurrencyConverter.Convert(contentItemPrice, contentItemCurrency, defaultCurrency), OriginalItemPrice = contentItemPrice, OriginalItemCurrency = contentItemCurrency.ObjectId, PurchaseStatusCode = purchaseStatusCode, PurchaseStatusDate = DateTime.Now, SupportPrice = CurrencyConverter.Convert(contentItemSupportPrice, contentItemCurrency, userCurrency), SupportPriceNIS = CurrencyConverter.Convert(contentItemSupportPrice, contentItemCurrency, defaultCurrency), OriginalSupportPrice = contentItemSupportPrice, UserKey = currentUser.ObjectId, WorldId = worldRetriever.GetWorldContentTypeId(), ClipIds = clips.ToArray(), IncludingSupport = includingSupport }; } // repository.AddPurchase(purchaseDto); return purchaseDto.ConvertToDomain(); }
private CheckoutViewModel GetCheckoutViewModel(Purchase[] userPurchases, IMyMentorRepository repository) { var loggedInUser = Session.GetLoggedInUser(); var model = new CheckoutViewModel(); CurrencyDto currencyDto = Task.Run(() => loggedInUser.GetPointerObject<BL.Models.Currency>("currency")).Result.ConvertToCurrencyDto(); model.UserCurrency = currencyDto; var worldRetriver = new WorldContentTypeRetriver(HttpContext, repository); var world = worldRetriver.GetWorldContentTypeId(); string issuedFor = loggedInUser.ObjectId; var userCoupons = repository.FindCoupon(issuedFor, world).ToArray(); UpdateDuplicateRecords(ref userCoupons, ref userPurchases); SetPurchases(model, userPurchases, userCoupons, repository, currencyDto); SetCoupons(userCoupons, userPurchases, currencyDto, repository, model); SetTotals(model, repository, currencyDto); model.PurchaseFor = loggedInUser.Username; return model; }
public ActionResult CompleteCheckout(CheckoutViewModel model) { ActionResult actionResult; if (EnsureLoggedOnUser(out actionResult)) return actionResult; var checkoutViewModel = new CheckoutViewModel(); var loggedInUser = Session.GetLoggedInUser(); try { using (var repository = RepositoryFactory.GetInstance(Session)) { var userPurchases = FindPurchasesForUser(repository).ToArray(); var userHistoricalPurchases = repository.FindHistoricalUserPurchases(Session.GetLoggedInUser().ObjectId).ToArray(); var worldId = new WorldContentTypeRetriver(HttpContext, repository).GetWorldContentTypeId(); string paymentUrl; checkoutViewModel = GetCheckoutViewModel(userPurchases, repository); checkoutViewModel.PurchaseFor = model.PurchaseFor; SetBundleClips(userPurchases, checkoutViewModel, repository); var currencyRetriver = new CurrencyRetriver(HttpContext, Session, repository); var sessionState = new SessionState(); var indexUrl = HttpContext.Request.Url.ToString().ToLower().Replace("completecheckout", "index") + string.Format("/?purchaseFor={0}", model.PurchaseFor); var expressCheckoutManager = new ExpressCheckoutManager(indexUrl); var logic = new CheckoutLogic(repository, currencyRetriver, sessionState, expressCheckoutManager); logic.ExecuteCompleteCheckout(loggedInUser, checkoutViewModel, worldId, userHistoricalPurchases, out paymentUrl); if (!string.IsNullOrEmpty(paymentUrl)) { return Redirect(paymentUrl); } } } catch { checkoutViewModel.ErrorMessage = Strings.GetLocalizedString(Strings.ShoppingCartPaymentFailure); } return View("Index", checkoutViewModel); }
public async Task<ActionResult> AddCouponFromContentItem(string id) { using (var repository = RepositoryFactory.GetInstance(Session)) { var worldRetriver = new WorldContentTypeRetriver(HttpContext, repository); var world = worldRetriver.GetWorldContentTypeId(); var purchase = await repository.FindPurchase(id); var issuedFor = Session.GetLoggedInUser().ObjectId; var userCoupons = repository.FindCoupon(issuedFor, world).Where(x => x.State == CouponStates.UnUsed.ToString()).ToArray(); Coupon couponForItem = null; if (purchase.ClipKey != null) { couponForItem = userCoupons.SingleOrDefault(x => x.Clip != null && x.Clip.ObjectId == purchase.ClipKey.ObjectId); } if (purchase.BundleKey != null) { couponForItem = userCoupons.SingleOrDefault(x => x.Bundle != null && x.Bundle.ObjectId == purchase.BundleKey.ObjectId); } if (couponForItem != null) { return await AddCoupon(couponForItem.ObjectId); } } return RedirectToAction("Index"); }
public async Task<ActionResult> UpdateStudent(StudentDetailsViewModel model) { var repository = RepositoryFactory.GetInstance(Session); try { var registerAsTeacher = model.RegisterAsTeacher; ViewBag.IsAdmin = (Session.GetLoggedInUser() != null && !string.IsNullOrEmpty(Session.GetImpersonatingUserName())) || Session.GetLoggedInUserRoleName() == RoleNames.ADMINISTRATORS; IEnumerable<UserGroup> groups = (repository.FindGroups()).ToArray(); IEnumerable<UserGroup> subGroups = (repository.FindSubGroups()).ToArray(); var sugLessonPublishingStatus = repository.FindUserPublishingStatus(); var userStatuses = repository.FindUserStatus(); var worldContentTypeRetriever = new WorldContentTypeRetriver(HttpContext, repository); model.UserRole = RoleNames.STUDENTS; model.DeviceTypes = repository.FindDeviceTypes(); model.Countries = repository.FindCountries(); model.UserPrefferences.ContentTypes = worldContentTypeRetriever.GetContentTypes(Session.GetLoggedInUser(), Session.GetImpersonatingUserName()); model.UserPrefferences.Currencies = repository.FindCurrencies(); model.UserPrefferences.Languages = repository.FindInterfaceLanguages(); model.Groups = groups; model.SubGroups = subGroups; model.SugLessonPublishingStatus = sugLessonPublishingStatus; model.UserStatusValues = userStatuses; // var selectedCountry = model.Countries.FirstOrDefault(country => country.Key == model.CountryOfResidence); // model.CountryOfResidence = selectedCountry; try { await new MyMentorUserManager(repository, Session).UpdateStudent(model); model.UpdateSuccess = true; } catch (Exception ex) { mLogger.Log(LogLevel.Error, ex.ToString); model.UpdateSuccess = false; } if (model.UpdateSuccess != null) { if (registerAsTeacher) { ViewBag.UpdateStudentMessage = model.UpdateSuccess.Value ? Strings.GetLocalizedString(Strings.RegistrationSuccessStudentBucomesTeacher) : Strings.GetLocalizedString(Strings.UpdateStudentFail); if (model.UpdateSuccess.Value) ViewBag.UpdateStudentMessage = string.Format(ViewBag.UpdateStudentMessage, model.FirstName); } else { ViewBag.UpdateStudentMessage = model.UpdateSuccess.Value ? Strings.GetLocalizedString(Strings.UpdateStudentSuccess) : Strings.GetLocalizedString(Strings.UpdateStudentFail); } } SetUserPrefferences(model.UserPrefferences); return View(model); } finally { repository.Dispose(); } }
public ActionResult UpdateStudent() { // await ParseUser.LogInAsync("*****@*****.**", "123456"); ParseUser user = Session.GetLoggedInUser(); StudentDetailsViewModel model = new StudentDetailsViewModel(); ViewBag.IsAdmin = (user != null && !string.IsNullOrEmpty(Session.GetImpersonatingUserName())) || Session.GetLoggedInUserRoleName() == RoleNames.ADMINISTRATORS; if (user == null) return RedirectToAction("Login"); var repository = new ParseRepository(new WebCacheProvider(HttpContext.ApplicationInstance.Context)); var worldContentTypeRetriever = new WorldContentTypeRetriver(HttpContext, repository); var contentTypes = worldContentTypeRetriever.GetContentTypes(user, Session.GetLoggedInUserRoleName()); var currencies = repository.FindCurrencies(); var uiLanguages = repository.FindInterfaceLanguages(); IEnumerable<UserGroup> groups = ( repository.FindGroups()).ToArray(); IEnumerable<UserGroup> subGroups = ( repository.FindSubGroups()).ToArray(); var sugLessonPublishingStatus = repository.FindUserPublishingStatus(); var userStatuses = repository.FindUserStatus(); model.DeviceTypes = repository.FindDeviceTypes(); model.Countries = repository.FindCountries(); model.UserPrefferences.ContentTypes = contentTypes; model.UserPrefferences.Currencies = currencies; model.UserPrefferences.Languages = uiLanguages; model.Groups = groups; model.SubGroups = subGroups; model.SugLessonPublishingStatus = sugLessonPublishingStatus; model.UserStatusValues = userStatuses; model.FirstName = user.GetString("firstName_he_il");// user.Keys.Contains("firstName") ? user["firstName"] as string : string.Empty; model.LastName = user.GetString("lastName_he_il");// user.Keys.Contains("lastName") ? user["lastName"] as string : string.Empty; model.Email = user.Keys.Contains("email") ? user["email"] as string : string.Empty; model.Phone = user.Keys.Contains("phoneNumber") ? user["phoneNumber"] as string : string.Empty; model.Email = user.Keys.Contains("email") ? user["email"] as string : string.Empty; model.MailRecipientAddress = user.GetString("mailRecipientAddress"); model.UserPrefferences.SelectedContentType = user.GetPointerObjectId("contentType"); model.UserPrefferences.SelectedCurrency = user.GetPointerObjectId("currency"); model.UserPrefferences.SelectedLanguage = user.GetPointerObjectId("interfaceLanguage"); model.CountryOfResidence = user.GetPointerObjectId("residenceCountry"); model.SelectedDeviceType = user.Keys.Contains("deviceType") && (user["deviceType"] as ParseObject) != null ? (user["deviceType"] as ParseObject).FetchIfNeededAsync().Result.ObjectId : string.Empty; model.SelectedDeviceType = model.DeviceTypes.FirstOrDefault(deviceType => deviceType.Key.Split(new [] { '|' })[0] == model.SelectedDeviceType).Key; ViewBag.DeviceUnSupportedText = Strings.GetLocalizedString(Strings.UnSupportedDevice); var userAdminData = user.GetPointerObject<UserAdminData>("adminData"); if (userAdminData != null) { model.AdminData.TCPTeacherCommission = userAdminData.TcpTeacherCommission.ToString("n2"); model.AdminData.AgentUserName =userAdminData.Agent!=null? userAdminData.Agent.Username:string.Empty; model.AdminData.ACPAgentCommission = userAdminData.AcpTeacherCommission.ToString("n2"); model.AdminData.STRCommissionRatio = userAdminData.StrCommissionRatio; model.AdminData.UserPublishingStatus = userAdminData.GetPointerObjectId("userPublishingStatus"); model.AdminData.UserStatus = userAdminData.GetPointerObjectId("userStatus"); model.AdminData.LockCountry = userAdminData.LockCountry; model.AdminData.LockCurrency = userAdminData.LockCurrency; model.AdminData.AdminRemarks = userAdminData.AdminRemarks; if (userAdminData.Group != null) { var savedSelectedGroup = userAdminData.Group.ObjectId; var selectedSubGroup = subGroups.SingleOrDefault(o => o.ObjectId == savedSelectedGroup); var selectedGroup = groups.SingleOrDefault(o => o.ObjectId == savedSelectedGroup); if (selectedSubGroup != null) { selectedGroup = groups.Single(o => o.ObjectId == selectedSubGroup.Parent.ObjectId); } model.AdminData.Group = selectedGroup != null ? selectedGroup.ObjectId : string.Empty; model.AdminData.SubGroup = selectedSubGroup != null ? selectedSubGroup.ObjectId : string.Empty; } } model.Messages.CountryLocked = Strings.GetLocalizedString(Strings.CountryLocked); model.Messages.SugOsekLocked = Strings.GetLocalizedString(Strings.SugOsekLocked); model.Messages.CurrencyLocked = Strings.GetLocalizedString(Strings.CurrencyLocked); model.Messages.SugNirutLocked = Strings.GetLocalizedString(Strings.SugNirutLocked); model.Messages.AgentNotFound = Strings.GetLocalizedString(Strings.AgentNotFound); if (user.GetStatus() == UserStatusStrings.AppUser) { model.AppUserMessage = string.Format(MyMentorResources.appUserMoreDetails, user.GetFullName(Language.CurrentLanguageCode)); } return View(model); }
public ActionResult Update(string regAsTeacher = null) { var repository = RepositoryFactory.GetInstance(Session); try { ParseUser user = Session.GetLoggedInUser(); ViewBag.IsAdmin = (user != null && !string.IsNullOrEmpty(Session.GetImpersonatingUserName())) || Session.GetLoggedInUserRoleName() == RoleNames.ADMINISTRATORS; if (user == null) return RedirectToAction("Login"); var worldContentTypeRetriever = new WorldContentTypeRetriver(HttpContext, repository); var model = new UserDetailsViewModel(); model.IsTeacher = user.GetBool("registerAsTeacher"); if (!model.IsTeacher && regAsTeacher == null) { return RedirectToAction("UpdateStudent"); } user["registerAsTeacher"] = true; var residences = repository.FindAllResidences(); var sugTavs = repository.FindSugTav(); var sugTagmuls = repository.FindSugTagmul(); var sugNirut = repository.FindSugNirut(); var sugMehira = repository.FindSugMehira(); var sugLanguages = repository.FindLanguages(); var sugLessonPublishingStatus = repository.FindUserPublishingStatus(); var userResidence = residences.FirstOrDefault(obj => obj.Name.Equals(user.GetString("residenceCountry"))); var deviceTypes = repository.FindDeviceTypes(); var contentTypes = worldContentTypeRetriever.GetContentTypes(user, Session.GetLoggedInUserRoleName()); var currencies = repository.FindCurrencies(); var uiLanguages = repository.FindInterfaceLanguages(); var userStatuses = repository.FindUserStatus(); IEnumerable<UserGroup> groups = (repository.FindGroups()).ToArray(); IEnumerable<UserGroup> subGroups = (repository.FindSubGroups()).ToArray(); var sugOseks = repository.FindAllSugOsek(); model.SugTav = sugTavs; model.SaleStatus = sugMehira; model.SugTagmuls = sugTagmuls.ConvertToSugTagmul(userResidence != null && userResidence.Israel); model.SugNiruts = sugNirut; model.SugMehiras = sugMehira; model.SugLanguages = sugLanguages; model.SugLessonPublishingStatus = sugLessonPublishingStatus; model.Groups = groups; model.SubGroups = subGroups; model.DeviceTypes = deviceTypes; model.UserPrefferences.ContentTypes = contentTypes; model.UserPrefferences.Currencies = currencies; model.UserPrefferences.Languages = uiLanguages; model.UserStatusValues = userStatuses; model.SugOseks = sugOseks; model.SelectedSugTav = user.GetPointerObjectId("sugTav"); model.Residence = user.GetPointerObjectId("residence"); model.SelectedSugTagmul = user.GetPointerObjectId("sugTagmul"); model.SelectedSugNirut = user.GetPointerObjectId("sugNirut"); model.SelectedSugMehiras = user.GetPointerObjectId("sugMehira"); model.TeachingLanguage1 = user.GetPointerObjectId("teachingLanguage1"); model.TeachingLanguage2 = user.GetPointerObjectId("teachingLanguage2"); model.TeachingLanguage3 = user.GetPointerObjectId("teachingLanguage3"); model.UserPrefferences.SelectedContentType = user.GetPointerObjectId("contentType"); model.UserPrefferences.SelectedCurrency = user.GetPointerObjectId("currency"); model.UserPrefferences.SelectedLanguage = user.GetPointerObjectId("interfaceLanguage"); model.SelectedSugOsek = user.GetPointerObjectId("sugOsek"); // model.SelectedUserStatus = currentUserStatus.ObjectId; model.FirstName = user.GetString("firstName_he_il").Trim(); model.LastName = user.GetString("lastName_he_il").Trim(); model.GovId = user.GetString("govId"); model.FirstNameEnglish = user.GetString("firstName_en_us").Trim(); model.LastNameEnglish = user.GetString("lastName_en_us").Trim(); model.Email = user.GetString("email"); model.Phone = user.GetString("phoneNumber"); model.MailRecipientAddress = user.GetString("mailRecipientAddress"); model.OtherTeachingLocation = user.GetString("otherTeachingLocation"); model.TeachesFromYear = user.GetString("teachesFromYear"); model.TeacherHomePage = user.GetString("teacherHomePage"); model.CityOfResidence = user.GetString("cityOfResidence_he_il"); model.CityOfResidence_en_us = user.GetString("cityOfResidence_en_us"); model.SelectedSaleStatus = user.GetString("saleStatus"); model.TeacherDescription = user.GetString("teacherDescription"); model.TeacherDescriptionEnglish = user.GetString("teacherDescription_en_us"); model.SelectedDeviceType = user.GetPointerObjectId("deviceType"); model.SelectedDeviceType = model.DeviceTypes.FirstOrDefault(deviceType => deviceType.Key.Split(new char[] { '|' })[0] == model.SelectedDeviceType).Key; model.PaymentDetails.AccountNumber = user.GetString("bankAccountNumber"); model.PaymentDetails.IRSNumber = user.GetString("irsFileNumber"); model.PaymentDetails.VATNumber = user.GetString("vatFileNumber"); model.PaymentDetails.BankName = user.GetString("bankName"); model.PaymentDetails.BankBranch = user.GetString("bankBranch"); model.PaymentDetails.BeneficiaryFulllName = user.GetString("beneficiaryFulllName"); model.PaymentDetails.PayPalEmail = user.GetString("paypalEmail"); model.LessonCost = user.GetNullableInt("lessonCost"); model.ExtraFeeForStudentHouse = user.GetNullableInt("extraFeeForStudentHouse"); model.Ashkenaz = user.GetBool("isAshkenazVersion"); model.Morocco = user.GetBool("isMorocoVersion"); model.Sefaradi = user.GetBool("isSepharadiVersion"); model.Yemen = user.GetBool("isYemenVersion"); model.OtherTeachingNosah = user.GetBool("isOtherTeachingNosah"); model.TeachesAtHome = user.GetBool("teachesAtHome"); model.TeachesAtStudentHouse = user.GetBool("teachesAtStudentHome"); model.ShowContanctDetails = user.GetBool("showContactDetails"); var userAdminData = user.GetPointerObject<UserAdminData>("adminData"); var agentUser = userAdminData.GetPointerObject<ParseUser>("agent"); if (userAdminData != null) { model.AdminData.TCPTeacherCommission = userAdminData.TcpTeacherCommission.ToString("n2"); model.AdminData.AgentUserName = agentUser != null ? agentUser.Username : string.Empty; model.AdminData.ACPAgentCommission = userAdminData.AcpTeacherCommission.ToString("n2"); model.AdminData.STRCommissionRatio = userAdminData.StrCommissionRatio; model.AdminData.UserPublishingStatus = userAdminData.GetPointerObjectId("userPublishingStatus"); model.AdminData.UserStatus = userAdminData.GetPointerObjectId("userStatus"); model.AdminData.LockCountry = userAdminData.LockCountry; model.AdminData.LockCurrency = userAdminData.LockCurrency; model.AdminData.LockSugNirut = userAdminData.LockSugNirut; model.AdminData.LockSugOsek = userAdminData.LockSugOsek; model.AdminData.OriginalTaxPercent = userAdminData.OriginalTaxPercent; model.AdminData.AdminRemarks = userAdminData.AdminRemarks; if (userAdminData.Group != null) { var savedSelectedGroup = userAdminData.Group.ObjectId; var selectedSubGroup = subGroups.SingleOrDefault(o => o.ObjectId == savedSelectedGroup); var selectedGroup = groups.SingleOrDefault(o => o.ObjectId == savedSelectedGroup); if (selectedSubGroup != null) { selectedGroup = groups.Single(o => o.ObjectId == selectedSubGroup.Parent.ObjectId); } model.AdminData.Group = selectedGroup != null ? selectedGroup.ObjectId : string.Empty; model.AdminData.SubGroup = selectedSubGroup != null ? selectedSubGroup.ObjectId : string.Empty; } } model.PictureUrl = user.Keys.Contains("picture") ? ((ParseFile)user["picture"]).Url.ToString() : MentorSystem.DEFAULT_PROFILE_IMAGE; var residenceTitle = residences.FirstOrDefault(residence => residence.Id == model.Residence); if (residenceTitle != null) model.ResidenceTitle = !string.IsNullOrEmpty(model.Residence) ? residenceTitle.Name : string.Empty; var residenceCountry = GetResidenceCountry(residences, model.Residence); model.ResidenceCountry = residenceCountry.Name; ViewBag.DeviceUnSupportedText = Strings.GetLocalizedString(Strings.UnSupportedDevice); model.Messages.CountryLocked = Strings.GetLocalizedString(Strings.CountryLocked); model.Messages.SugOsekLocked = Strings.GetLocalizedString(Strings.SugOsekLocked); model.Messages.CurrencyLocked = Strings.GetLocalizedString(Strings.CurrencyLocked); model.Messages.SugNirutLocked = Strings.GetLocalizedString(Strings.SugNirutLocked); model.Messages.AgentNotFound = Strings.GetLocalizedString(Strings.AgentNotFound); return View("Update", model); } finally { repository.Dispose(); } }
public async Task<ActionResult> AddUpdateBundleData(BundleUpdateViewModel model) { var repository = RepositoryFactory.GetInstance(Session); try { var contentTypeRetriver = new WorldContentTypeRetriver(HttpContext,repository); var worldContentTypeId = contentTypeRetriver.GetWorldContentTypeId(); var isNewBundle = model.ObjectId == null; var clipsIds = model.BundleClips.Select(o => o.Id).ToArray(); if (!clipsIds.Any()) { return Json(new ServiceObjectResponse { Status = ServiceObjectResponse.Failure, StatusReason = MyMentorResources.updateBundleNoLessonsSelected }); } ValidateBundlePrice(model); var teacher = await repository.FindUserByName(model.TeacherName); model.TeacherId = teacher.ObjectId; new NameManager(repository, Session).SetPortalBundleName(_worldId, model, teacher.ConvertToParseUserDto()); if (isNewBundle) { model.ObjectId = await AddBundle(model, worldContentTypeId); } else { await UpdateBundle(model); } lock (locker) { Task.Run(() => repository.UpdateClipsInBundle(model.GetBundle(), clipsIds)).Wait(); var context = System.Web.HttpContext.Current; new WebCacheProvider(context).ClearCachedItem(CacheKeys.ClipToBundle); } return Json(new ServiceObjectResponse { Status = ServiceObjectResponse.Success, }); } catch (Exception ex) { if (ex is DuplicateNameException || ex is StatusChangeException || ex is BundlePriceException) { return Json(new ServiceObjectResponse { Status = ServiceObjectResponse.Failure, StatusReason = ex.Message }); } mLogger.Log(LogLevel.Error, ex); return Json(new ServiceObjectResponse { Status = ServiceObjectResponse.Failure, StatusReason = MyMentorResources.errCanotAddBundleGeneral }); } finally { repository.Dispose(); } }