public ActionResult Compatibility(CompatibilityModel model) { if (model.NineStarKiModel1?.PersonModel != null && model.NineStarKiModel2?.PersonModel != null) { model = _nineStarKiService.CalculateCompatibility(model.NineStarKiModel1.PersonModel, model.NineStarKiModel2.PersonModel, model.IsHideSexualChemistry); } return(View("Compatibility", model)); }
public static void SetLastCompatibility(CompatibilityModel model) { Base.WebApplication.Helpers.SessionHelper.SetValue(Constants.SessionConstants.LastCompatibilityProfileDateOfBirth1, model.NineStarKiModel1.PersonModel.DateOfBirth.ToString(Constants.FormatConstants.SessionDateTimeFormat)); Base.WebApplication.Helpers.SessionHelper.SetValue(Constants.SessionConstants.LastCompatibilityProfileDateOfBirth2, model.NineStarKiModel2.PersonModel.DateOfBirth.ToString(Constants.FormatConstants.SessionDateTimeFormat)); Base.WebApplication.Helpers.SessionHelper.SetValue(Constants.SessionConstants.LastCompatibilityProfileGender1, model.NineStarKiModel1.PersonModel.Gender); Base.WebApplication.Helpers.SessionHelper.SetValue(Constants.SessionConstants.LastCompatibilityProfileGender2, model.NineStarKiModel2.PersonModel.Gender); Base.WebApplication.Helpers.SessionHelper.SetValue(Constants.SessionConstants.LastCompatibilityProfileName1, model.NineStarKiModel1.PersonModel.Name); Base.WebApplication.Helpers.SessionHelper.SetValue(Constants.SessionConstants.LastCompatibilityProfileName2, model.NineStarKiModel2.PersonModel.Name); Base.WebApplication.Helpers.SessionHelper.SetValue(Constants.SessionConstants.LastCompatibilityHideSexuality, model.IsHideSexualChemistry); Base.WebApplication.Helpers.SessionHelper.SetValue(Constants.SessionConstants.IsRetrieveCompatibility, true); Base.WebApplication.Helpers.SessionHelper.SetValue(Constants.SessionConstants.CompatibilityStoredOn, DateTime.Today.ToString(Constants.FormatConstants.SessionDateTimeFormat)); }
public CompatibilityModel CalculateCompatibility(PersonModel personModel1, PersonModel personModel2, bool isHideSexuality) { var nineStarKiModel1 = CalculateNineStarKiProfile(personModel1, true); var nineStarKiModel2 = CalculateNineStarKiProfile(personModel2, true); var model = new CompatibilityModel(nineStarKiModel1, nineStarKiModel2) { IsProcessed = true, IsUpgradeRequired = true, IsHideSexualChemistry = isHideSexuality }; if (_authentication.IsAuthenticated) { if (_roles.CurrentUserIsInRoles(RoleNames.Administrators) || _membershipService.IsCompleteRelationshipCompatibilityReading(_authentication.CurrentUserId, personModel1, personModel2, isHideSexuality)) { model.IsUpgradeRequired = false; } } return model; }
public override async Task Invoke(IOwinContext context) { if (context.RespondNotModified()) { return; } var q = context.Request.Query; var hash = q["hash"]; var source = q["source"]; var packageId = q["packageId"]; var version = q["version"]; var targetFramework = q["targetFramework"]; var model = new CompatibilityModel { PackageSelector = new PackageSelectorModel { DefaultSource = source, DefaultPackageId = packageId, DefaultVersion = version, DefaultTargetFramework = targetFramework } }; var statusCode = 200; try { PackageFolderReader package; if (string.IsNullOrEmpty(hash)) { if (string.IsNullOrWhiteSpace(packageId)) { // Homepage of NuGetCalc Online await context.Response.View(new Views.CompatibilityStatic(), model.PackageSelector).ConfigureAwait(false); return; } if (string.IsNullOrWhiteSpace(targetFramework)) { statusCode = 400; model.Error = "Target Framework is required."; goto RESPOND; } NuGetVersion nugetVersion = null; if (!string.IsNullOrWhiteSpace(version) && !NuGetVersion.TryParse(version, out nugetVersion)) { statusCode = 400; model.Error = "Version is not valid as NuGetVersion."; goto RESPOND; } var packageDir = NuGetUtility.GetPackage(source, packageId, nugetVersion).Result; // avoid compile error on mono package = new PackageFolderReader(packageDir); } else { package = new PackageFolderReader(NuGetUtility.GetUploadedPackage(hash)); model.PackageSelector.UploadHash = hash; model.PackageSelector.UploadedPackage = package.GetIdentity(); } using (package) { context.Request.CallCancelled.ThrowIfCancellationRequested(); var identity = package.GetIdentity(); model.PackageSelector.DefaultPackageId = identity.Id; model.PackageSelector.DefaultVersion = identity.Version.ToString(); // NuGetFramework.Parse will throw only ArgumentNullException var nugetFramework = NuGetFramework.Parse(targetFramework); var referenceItems = NuGetUtility.FindMostCompatibleReferenceGroup(package, nugetFramework); if (referenceItems != null) { model.ReferenceAssemblies = referenceItems.Items; } var depenencyItems = NuGetUtility.FindMostCompatibleDependencyGroup(package, nugetFramework); if (depenencyItems != null) { model.Dependencies = depenencyItems.Packages; } } GC.Collect(); // to release a handle of nuspec file } catch (NuGetUtilityException ex) { statusCode = 500; model.Error = ex.Message; if (ex.InnerException != null) { model.Exception = ex.InnerException; } } RESPOND: context.Response.StatusCode = statusCode; await context.Response.View(new Views.Compatibility(), model).ConfigureAwait(false); }