v1.1.6.0
This commit is contained in:
@@ -35,11 +35,12 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
public String Title { get; set; }
|
||||
public String FirstName { get; set; }
|
||||
public String LastName { get; set; }
|
||||
public String About { get; set; }
|
||||
public byte Gender { get; set; }
|
||||
public String GenderCaption{ get; set; }
|
||||
public String GenderCaption { get; set; }
|
||||
public byte DobDay { get; set; }
|
||||
public byte DobMonth{ get; set; }
|
||||
public short DobYear{ get; set; }
|
||||
public byte DobMonth { get; set; }
|
||||
public short DobYear { get; set; }
|
||||
// Regions.
|
||||
public int RegionIdCountry { get; set; }
|
||||
public String RegionCaptionCountry { get; set; }
|
||||
@@ -54,22 +55,19 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
data.Title = userAccount.Title;
|
||||
data.FirstName = userAccount.FirstName;
|
||||
data.LastName = userAccount.LastName;
|
||||
data.About = userAccount.About;
|
||||
data.Gender = (byte)userAccount.Gender;
|
||||
data.GenderCaption = Localiser.GetGenderCaption(userAccount.Gender);
|
||||
data.DobDay= (byte)userAccount.DateOfBirthDay;
|
||||
data.DobDay = (byte)userAccount.DateOfBirthDay;
|
||||
data.DobMonth = (byte)userAccount.DateOfBirthMonth;
|
||||
data.DobYear = (short)userAccount.DateOfBirthYear;
|
||||
// Regions.
|
||||
data.RegionIdCountry = SysId.ToInt(userAccount.RegionIdCountry);
|
||||
data.RegionIdProvince = SysId.ToInt(userAccount.RegionIdProvince);
|
||||
using (SaxRegion regionCountry = Internals.GetRegion(userAccount.RegionIdCountry))
|
||||
using (SaxRegion regionProvince = Internals.GetRegion(userAccount.RegionIdProvince))
|
||||
{
|
||||
data.RegionCaptionCountry = Localiser.GetRegionName(regionCountry);
|
||||
data.RegionCaptionProvince = Localiser.GetRegionName(regionProvince);
|
||||
List<String> locations = new List<string>() { data.RegionCaptionProvince, data.RegionCaptionCountry };
|
||||
data.LocationCaption = locations.Concat(", ", "", "", true, true);
|
||||
}
|
||||
data.RegionCaptionCountry = Localiser.GetRegionName(Internals.GetRegion(userAccount.RegionIdCountry));
|
||||
data.RegionCaptionProvince = Localiser.GetRegionName(Internals.GetRegion(userAccount.RegionIdProvince));
|
||||
List<String> locations = new List<string>() { data.RegionCaptionProvince, data.RegionCaptionCountry };
|
||||
data.LocationCaption = locations.Concat(", ", "", "", true, true);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -112,7 +110,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
responseData.Genders.Add(gender.Type.ToString(), Localiser.GetGenderCaption((Sax.Gender)gender.Type));
|
||||
|
||||
// Reference data - Months.
|
||||
for (int month= 1; month <= 12; month++)
|
||||
for (int month = 1; month <= 12; month++)
|
||||
responseData.Months.Add(month.ToString(), DateUtil.Format(new DateTime(DateTime.Today.Year, month, 1), "MMMM", SessionCulture));
|
||||
|
||||
// Retrieve user details.
|
||||
@@ -280,6 +278,8 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
userAccount.FirstName = model.AccountFirstName;
|
||||
if (model.AccountLastName != null)
|
||||
userAccount.LastName = model.AccountLastName;
|
||||
if (model.AccountAbout != null)
|
||||
userAccount.About = model.AccountAbout;
|
||||
if (model.AccountGender != null)
|
||||
userAccount.Gender = model.GetAccountGender();
|
||||
// Date of birth.
|
||||
@@ -299,7 +299,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
else
|
||||
{
|
||||
userAccount.DateOfBirthMonth = 0;
|
||||
userAccount.DateOfBirthDay= 0;
|
||||
userAccount.DateOfBirthDay = 0;
|
||||
}
|
||||
// Regions.
|
||||
if (model.AccountRegionIdCountry != null)
|
||||
|
||||
@@ -25,27 +25,25 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data definitions.
|
||||
private class ProfileSportResponseData_List
|
||||
private class ProfileSportResponseData_List : AjaxResponse_Data.ItemData_Base
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long SportId { get; set; }
|
||||
public String SportId { get; set; }
|
||||
public String SportName { get; set; }
|
||||
public String SportSpecialityLabel { get; set; }
|
||||
public String SportParticipation { get; set; }
|
||||
public String SportOfficiating { get; set; }
|
||||
public String StatusCode { get; set; }
|
||||
public String StatusDesc { get; set; }
|
||||
}
|
||||
private class ProfileSportResponseData_Item : ProfileSportResponseData_List
|
||||
{
|
||||
public String SportParticipationCode { get; set; }
|
||||
public String SportOfficiatingCode { get; set; }
|
||||
public String CreatedOnFmt { get; set; }
|
||||
}
|
||||
private void PopulateProfileSportResponseData(Model_Account model, SaxUserSport userSport, SaxSport sport, ProfileSportResponseData_Item data)
|
||||
{
|
||||
data.Id = SysId.ToLong(userSport.Id);
|
||||
data.SportId = SysId.ToLong(userSport.SportId);
|
||||
data.Id = SysId.ToString(userSport.Id);
|
||||
data.SportId = SysId.ToString(userSport.SportId);
|
||||
data.SportName = sport.Name;
|
||||
data.SportSpecialityLabel = model.GetSportSpecialityLabel(userSport.SportId);
|
||||
data.SportParticipationCode = SportParticipationCodes.GetCodeForType(userSport.Participation);
|
||||
data.SportParticipation = Localiser.GetSportParticipationTypeCaption(userSport.Participation);
|
||||
data.SportOfficiatingCode = SportOfficiatingCodes.GetCodeForType(userSport.Officiating);
|
||||
@@ -110,11 +108,13 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
|
||||
{
|
||||
NamedValue.Map values = resultSet.GetRecordValues();
|
||||
SysId sportId = new SysId(values.GetLong(colSportId.DataName));
|
||||
ProfileSportResponseData_List userSportData = new ProfileSportResponseData_List()
|
||||
{
|
||||
Id = values.GetLong(colId.DataName),
|
||||
SportId = values.GetLong(colSportId.DataName),
|
||||
Id = values.GetLong(colId.DataName).ToString(),
|
||||
SportId = sportId.ToString(),
|
||||
SportName = values.GetString(colSportName.DataName),
|
||||
SportSpecialityLabel = model.GetSportSpecialityLabel(sportId),
|
||||
SportParticipation = Localiser.GetSportParticipationTypeCaption((Sax.SportParticipation)values.GetLong(colParticipation.DataName)),
|
||||
SportOfficiating = Localiser.GetSportOfficiatingTypeCaption((Sax.SportOfficiating)values.GetLong(colOfficiating.DataName)),
|
||||
StatusCode = values.GetString(colStatus.DataName),
|
||||
|
||||
+22
-11
@@ -54,7 +54,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
public String RegionIdNation { get; set; }
|
||||
public String RegionIdProvince { get; set; }
|
||||
}
|
||||
private void PopulateSportExperienceResponseData(Model_UserSportExperience model, SportExperienceResponseData_Detail data, SaxUserSportExperience userSportExperience)
|
||||
private void PopulateSportExperienceResponseData(Model_UserSportExperience model, SportExperienceResponseData_Detail data, SaxUserSport userSport, SaxUserSportExperience userSportExperience)
|
||||
{
|
||||
data.Id = model.EncryptId(userSportExperience.Id);
|
||||
data.UserSportId = model.EncryptId(userSportExperience.UserSportId);
|
||||
@@ -72,14 +72,10 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
// Regions.
|
||||
data.RegionIdNation = model.EncryptId(userSportExperience.RegionIdNation);
|
||||
data.RegionIdProvince = model.EncryptId(userSportExperience.RegionIdProvince);
|
||||
using (SaxRegion regionNation = Internals.GetRegion(userSportExperience.RegionIdNation))
|
||||
using (SaxRegion regionProvince = Internals.GetRegion(userSportExperience.RegionIdProvince))
|
||||
{
|
||||
data.RegionCaptionNation = Localiser.GetRegionName(regionNation);
|
||||
data.RegionCaptionProvince = Localiser.GetRegionName(regionProvince);
|
||||
List<String> locations = new List<string>() { data.RegionCaptionProvince, data.RegionCaptionNation };
|
||||
data.RegionRepresentation = locations.Concat(", ", "", "", true, true);
|
||||
}
|
||||
data.RegionCaptionNation = Localiser.GetRegionName(Internals.GetRegion(userSportExperience.RegionIdNation));
|
||||
data.RegionCaptionProvince = Localiser.GetRegionName(Internals.GetRegion(userSportExperience.RegionIdProvince));
|
||||
List<String> locations = new List<string>() { data.RegionCaptionProvince, data.RegionCaptionNation };
|
||||
data.RegionRepresentation = locations.Concat(", ", "", "", true, true);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -94,6 +90,17 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
public AjaxResponse_UserSportExperienceList(SaxModel_Online model) : base(model) { }
|
||||
// Contact details.
|
||||
public List<SportExperienceResponseData_List> Experiences { get; } = new List<SportExperienceResponseData_List>();
|
||||
// Sport details.
|
||||
public class SportData
|
||||
{
|
||||
public class SpecialityData
|
||||
{
|
||||
public bool? NotRelevant { get; set; } = null;
|
||||
public String Label { get; set; }
|
||||
}
|
||||
public SpecialityData Speciality { get; } = new SpecialityData();
|
||||
}
|
||||
public SportData Sport { get; } = new SportData();
|
||||
}
|
||||
// Ajax request.
|
||||
[HttpPost]
|
||||
@@ -119,6 +126,10 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
if (userSport == null || !userSport.UserAccountId.Equals(SessionData.User.UserAccountId))
|
||||
return Json(responseData.SetGoHome(messageTitle, Localiser["msg.something.gone.wrong"]));
|
||||
|
||||
// Sport details.
|
||||
if (model.SportSpecialityNotRelevant(userSport.SportId)) responseData.Sport.Speciality.NotRelevant = true;
|
||||
responseData.Sport.Speciality.Label = model.GetSportSpecialityLabel(userSport.SportId);
|
||||
|
||||
// Columns.
|
||||
ColumnDfn colId = AccountMgr.GetUserSportExperienceColumnDfn(SaxUserSportExperience.Column.Id);
|
||||
ColumnDfn colUserSportId = AccountMgr.GetUserSportExperienceColumnDfn(SaxUserSportExperience.Column.UserSportId);
|
||||
@@ -214,7 +225,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
|
||||
// Populate data to response.
|
||||
responseData.Experience = new SportExperienceResponseData_Detail();
|
||||
PopulateSportExperienceResponseData(model, responseData.Experience, userSportExperience);
|
||||
PopulateSportExperienceResponseData(model, responseData.Experience, userSport, userSportExperience);
|
||||
}
|
||||
|
||||
// Complete response.
|
||||
@@ -337,7 +348,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
|
||||
// Populate data to response.
|
||||
responseData.Experience = new SportExperienceResponseData_Detail();
|
||||
PopulateSportExperienceResponseData(model, responseData.Experience, userSportExperience);
|
||||
PopulateSportExperienceResponseData(model, responseData.Experience, userSport, userSportExperience);
|
||||
}
|
||||
|
||||
// Complete response.
|
||||
|
||||
@@ -50,8 +50,9 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
/// <summary>Article activity info. </summary>
|
||||
private class ActivityResponseData_Article
|
||||
{
|
||||
public ActivityResponseData_Article(SaxController_Online controller, SaxModel_Online model, SaxArticle article)
|
||||
public ActivityResponseData_Article(SaxController_Online controller, SaxModel_Online model, SaxArticle article, SaxOrganisation organisation)
|
||||
{
|
||||
Organisation = organisation?.Name ?? null;
|
||||
Author = model.GetUserAccountDisplayName(article.UserAccountIdAuthor);
|
||||
Headline = article.Headline;
|
||||
Summary = article.Summary;
|
||||
@@ -218,44 +219,53 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
RefreshModel(model);
|
||||
SaxSessionData_Online sessionData = SessionData_Online;
|
||||
|
||||
// Identify activity.
|
||||
Sax.DataItemType itemType = (Sax.DataItemType)StringUtil.ToShort(model.ActivityType);
|
||||
SysId itemId = model.ExtractSysId(model.ActivityIdx);
|
||||
if (itemType <= 0 || !SysId.IsValid(itemId))
|
||||
// Record disposable items as they are created so all can be disposed when needed.
|
||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
||||
{
|
||||
SaLogger.Warn(fn + " Activity type/Id inncorrectly specified." + GetLogSuffix());
|
||||
return Json(responseData);
|
||||
}
|
||||
|
||||
// Retrieve activity details.
|
||||
if (itemType == Sax.DataItemType.Article)
|
||||
{
|
||||
// Article.
|
||||
SaxArticle article = ActivityMgr.GetArticleById(itemId);
|
||||
if (article == null)
|
||||
// Identify activity.
|
||||
Sax.DataItemType itemType = (Sax.DataItemType)StringUtil.ToShort(model.ActivityType);
|
||||
SysId itemId = model.ExtractSysId(model.ActivityIdx);
|
||||
if (itemType <= 0 || !SysId.IsValid(itemId))
|
||||
{
|
||||
SaLogger.Warn(fn + " Article not found for Activity Id: " + itemId.ToString() + "." + GetLogSuffix());
|
||||
SaLogger.Warn(fn + " Activity type/Id inncorrectly specified." + GetLogSuffix());
|
||||
return Json(responseData);
|
||||
}
|
||||
responseData.Article = new ActivityResponseData_Article(this, model, article);
|
||||
}
|
||||
else if (itemType == Sax.DataItemType.OrganisationOpportunity)
|
||||
{
|
||||
// Organisation Opportunity.
|
||||
SaxOrganisationOpportunity opportunity = ActivityMgr.GetOrganisationOpportunityById(itemId);
|
||||
if (opportunity == null)
|
||||
|
||||
// Retrieve activity details.
|
||||
if (itemType == Sax.DataItemType.Article)
|
||||
{
|
||||
SaLogger.Warn(fn + " Opportunity not found for Activity Id: " + itemId.ToString() + "." + GetLogSuffix());
|
||||
// Article.
|
||||
SaxArticle article = ActivityMgr.GetArticleById(itemId);
|
||||
disposableItems.Add(article);
|
||||
if (article == null)
|
||||
{
|
||||
SaLogger.Warn(fn + " Article not found for Activity Id: " + itemId.ToString() + "." + GetLogSuffix());
|
||||
return Json(responseData);
|
||||
}
|
||||
SaxOrganisation organisation = AccountMgr.GetOrganisationById(article.OrganisationId);
|
||||
disposableItems.Add(organisation);
|
||||
responseData.Article = new ActivityResponseData_Article(this, model, article, organisation);
|
||||
}
|
||||
else if (itemType == Sax.DataItemType.OrganisationOpportunity)
|
||||
{
|
||||
// Organisation Opportunity.
|
||||
SaxOrganisationOpportunity opportunity = ActivityMgr.GetOrganisationOpportunityById(itemId);
|
||||
disposableItems.Add(opportunity);
|
||||
if (opportunity == null)
|
||||
{
|
||||
SaLogger.Warn(fn + " Opportunity not found for Activity Id: " + itemId.ToString() + "." + GetLogSuffix());
|
||||
return Json(responseData);
|
||||
}
|
||||
responseData.Opportunity = new ActivityResponseData_Opportunity(model, opportunity);
|
||||
}
|
||||
|
||||
// Record activty viewing.
|
||||
if (!ActivityConsole.RecordUserActivityViewed(SessionData.User.UserAccountId, new ItemId((short)itemType, itemId), DbUpdateInfo))
|
||||
{
|
||||
SaLogger.Warn(fn + " Failed to record Activity Viewing: " + ActivityConsole.ErrorStateMessage + "." + GetLogSuffix());
|
||||
return Json(responseData);
|
||||
}
|
||||
responseData.Opportunity = new ActivityResponseData_Opportunity(model, opportunity);
|
||||
}
|
||||
|
||||
// Record activty viewing.
|
||||
if (!ActivityConsole.RecordUserActivityViewed(SessionData.User.UserAccountId, new ItemId((short)itemType, itemId), DbUpdateInfo))
|
||||
{
|
||||
SaLogger.Warn(fn + " Failed to record Activity Viewing: " + ActivityConsole.ErrorStateMessage + "." + GetLogSuffix());
|
||||
return Json(responseData);
|
||||
}
|
||||
|
||||
// Complete response.
|
||||
|
||||
+89
-61
@@ -78,6 +78,17 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
public bool CanManage { get; set; }
|
||||
}
|
||||
public UserData User { get; } = new UserData();
|
||||
// Organisation.
|
||||
public class OrganisationData
|
||||
{
|
||||
public String Id { get; set; }
|
||||
public String Name { get; set; }
|
||||
public String SportId { get; set; }
|
||||
public String SportName { get; set; }
|
||||
public String RegionId { get; set; }
|
||||
public String RegionName { get; set; }
|
||||
}
|
||||
public OrganisationData Organisation { get; } = new OrganisationData();
|
||||
// Reference data.
|
||||
public List<CodeDesc> OpportunityTypes { get; } = new List<CodeDesc>();
|
||||
}
|
||||
@@ -95,11 +106,16 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
if (!ValidReferer) return Forbid();
|
||||
if (!ValidUserSession) return GetAjaxResult_InvalidSession(responseData);
|
||||
RefreshModel(model);
|
||||
SysId userAccountId = SessionData.User.UserAccountId;
|
||||
|
||||
// Organisation.
|
||||
SysId organisationId = model.ExtractSysId(model.Filter.OrganisationId);
|
||||
using (SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationId))
|
||||
// Record disposable items as they are created so all can be disposed when needed.
|
||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
||||
{
|
||||
|
||||
// Organisation.
|
||||
SysId organisationId = model.ExtractSysId(model.Filter.OrganisationId);
|
||||
SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationId);
|
||||
disposableItems.Add(organisation);
|
||||
if (organisation == null || !organisation.IsStatusActive)
|
||||
{
|
||||
SaLogger.Warn(fn + " " + (organisation == null ? "Invalid" : "Inactive") + " organisation for Opportunity list. OrganisationId: '" + model.Filter.OrganisationId + "'");
|
||||
@@ -117,73 +133,85 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
|
||||
// User organisation.
|
||||
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||
prmUserOrganisation.UserAccountIdsIncluded.Add(SessionData.User.UserAccountId);
|
||||
prmUserOrganisation.UserAccountIdsIncluded.Add(userAccountId);
|
||||
prmUserOrganisation.OrganisationIdsIncluded.Add(organisationId);
|
||||
prmUserOrganisation.UserAccountStatusCat = SaxUserAccount.StatusCat.ActiveOnly;
|
||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||
using (SaxUserOrganisation userOrganisation = AccountMgr.GetUserOrganisation(prmUserOrganisation))
|
||||
SaxUserOrganisation userOrganisation = AccountMgr.GetUserOrganisation(prmUserOrganisation);
|
||||
disposableItems.Add(userOrganisation);
|
||||
if (userOrganisation == null)
|
||||
{
|
||||
SaLogger.Warn(fn + " Invalid/inactive user organisation for Opportunity list. UserAccountId: " + SysId.ToString(userAccountId) + ". OrganisationId: " + model.Filter.OrganisationId + ".");
|
||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
||||
}
|
||||
|
||||
// User details.
|
||||
responseData.User.CanManage = userOrganisation?.HasOrganisationRole(Sax.OrganisationRole.OpportunityAdmin) ?? false;
|
||||
// Organisation.
|
||||
responseData.Organisation.Id = SysId.ToString(organisation.Id);
|
||||
responseData.Organisation.Name = organisation.Name;
|
||||
responseData.Organisation.SportId = SysId.ToString(organisation.SportIdPrimary);
|
||||
responseData.Organisation.SportName = model.GetSportCaption(organisation.SportIdPrimary);
|
||||
responseData.Organisation.RegionId = SysId.ToString(organisation.RegionIdPrimary);
|
||||
responseData.Organisation.RegionName = model.GetRegionCaption(organisation.RegionIdPrimary);
|
||||
|
||||
// Item filter.
|
||||
SaxOrganisationOpportunity.Params prmOpportunity = new SaxOrganisationOpportunity.Params();
|
||||
prmOpportunity.UserAccountIdsIncluded.Add(SessionData.User.UserAccountId);
|
||||
prmOpportunity.OrganisationIdsIncluded.Add(organisationId);
|
||||
prmOpportunity.OpportunityFilter = model.Filter.Opportunity;
|
||||
prmOpportunity.StatusCat = SaxOrganisationOpportunity.StatusCat.NotDeleted;
|
||||
model.Paging.ItemTotal = (ulong)ActivityMgr.GetOrganisationOpportunityCount(prmOpportunity);
|
||||
model.PopulatePagingTo(prmOpportunity.ResultsPaging);
|
||||
// User details.
|
||||
responseData.User.CanManage = userOrganisation?.HasOrganisationRole(Sax.OrganisationRole.OpportunityAdmin) ?? false;
|
||||
|
||||
// Item columns.
|
||||
ColumnDfn colId = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Id);
|
||||
ColumnDfn colOpportunityTypeCode = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.OpportunityTypeCode);
|
||||
ColumnDfn colPosition = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Position);
|
||||
ColumnDfn colOutline = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Outline);
|
||||
ColumnDfn colRegionId = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.RegionIdPrimary);
|
||||
ColumnDfn colRegionName = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Region_Name);
|
||||
ColumnDfn colSportId = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.SportIdPrimary);
|
||||
ColumnDfn colSportName = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Sport_Name);
|
||||
ColumnDfn colPublishedOn = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.PublishedAt_Date);
|
||||
ColumnDfn colExpiresOn = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.ExpiresAt_Date);
|
||||
ColumnDfn colStatus = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Status);
|
||||
ColumnDfn colCreatedOn = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.CreateOn_Date);
|
||||
List<ColumnDfn> columns = new List<ColumnDfn>()
|
||||
// Item filter.
|
||||
SaxOrganisationOpportunity.Params prmOpportunity = new SaxOrganisationOpportunity.Params();
|
||||
prmOpportunity.UserAccountIdsIncluded.Add(userAccountId);
|
||||
prmOpportunity.OrganisationIdsIncluded.Add(organisationId);
|
||||
prmOpportunity.OpportunityFilter = model.Filter.Opportunity;
|
||||
prmOpportunity.StatusCat = SaxOrganisationOpportunity.StatusCat.NotDeleted;
|
||||
model.Paging.ItemTotal = (ulong)ActivityMgr.GetOrganisationOpportunityCount(prmOpportunity);
|
||||
model.PopulatePagingTo(prmOpportunity.ResultsPaging);
|
||||
|
||||
// Item columns.
|
||||
ColumnDfn colId = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Id);
|
||||
ColumnDfn colOpportunityTypeCode = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.OpportunityTypeCode);
|
||||
ColumnDfn colPosition = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Position);
|
||||
ColumnDfn colOutline = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Outline);
|
||||
ColumnDfn colRegionId = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.RegionIdPrimary);
|
||||
ColumnDfn colRegionName = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Region_Name);
|
||||
ColumnDfn colSportId = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.SportIdPrimary);
|
||||
ColumnDfn colSportName = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Sport_Name);
|
||||
ColumnDfn colPublishedOn = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.PublishedAt_Date);
|
||||
ColumnDfn colExpiresOn = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.ExpiresAt_Date);
|
||||
ColumnDfn colStatus = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Status);
|
||||
ColumnDfn colCreatedOn = ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.CreateOn_Date);
|
||||
List<ColumnDfn> columns = new List<ColumnDfn>()
|
||||
{
|
||||
colId, colOpportunityTypeCode, colPosition, colOutline,
|
||||
colRegionId, colRegionName, colSportId, colSportName,
|
||||
colPublishedOn, colExpiresOn,
|
||||
colStatus, colCreatedOn
|
||||
};
|
||||
|
||||
// Sort columns.
|
||||
colCreatedOn.SortAscending = false;
|
||||
prmOpportunity.SortColumns.Add(colCreatedOn);
|
||||
|
||||
// Query items.
|
||||
using (DbResultSet resultSet = ActivityMgr.ExecuteOrganisationOpportunityQuery(columns, prmOpportunity))
|
||||
{
|
||||
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
|
||||
{
|
||||
colId, colOpportunityTypeCode, colPosition, colOutline,
|
||||
colRegionId, colRegionName, colSportId, colSportName,
|
||||
colPublishedOn, colExpiresOn,
|
||||
colStatus, colCreatedOn
|
||||
};
|
||||
|
||||
// Sort columns.
|
||||
colCreatedOn.SortAscending = false;
|
||||
prmOpportunity.SortColumns.Add(colCreatedOn);
|
||||
|
||||
// Query items.
|
||||
using (DbResultSet resultSet = ActivityMgr.ExecuteOrganisationOpportunityQuery(columns, prmOpportunity))
|
||||
{
|
||||
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
|
||||
NamedValue.Map values = resultSet.GetRecordValues();
|
||||
OpportunityData_List opportunityData = new OpportunityData_List()
|
||||
{
|
||||
NamedValue.Map values = resultSet.GetRecordValues();
|
||||
OpportunityData_List opportunityData = new OpportunityData_List()
|
||||
{
|
||||
Id = values.GetLong(colId.DataName).ToString(),
|
||||
TypeCode = values.GetString(colOpportunityTypeCode.DataName),
|
||||
TypeDesc = Localiser.GetOpportunityTypeCaption((Sax.OpportunityType)OpportunityTypeCodes.GetTypeForCode(values.GetString(colOpportunityTypeCode.DataName))),
|
||||
Position = values.GetString(colPosition.DataName),
|
||||
Outline = values.GetString(colOutline.DataName),
|
||||
RegionCaption = model.GetRegionCaption(values.GetString(colRegionId.DataName).ToSysId()),
|
||||
SportCaption = model.GetSportCaption(values.GetString(colSportId.DataName).ToSysId()),
|
||||
CreatedOnFmt = Localiser.FormatDate(values.GetDateTime(colCreatedOn.DataName)),
|
||||
PublishedOnFmt = Localiser.FormatDate(values.GetDateTime(colPublishedOn.DataName)),
|
||||
ExpiresOnFmt = Localiser.FormatDate(values.GetDateTime(colExpiresOn.DataName)),
|
||||
StatusCode = values.GetString(colStatus.DataName),
|
||||
StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName))
|
||||
};
|
||||
responseData.Opportunities.Add(opportunityData);
|
||||
}
|
||||
Id = values.GetLong(colId.DataName).ToString(),
|
||||
TypeCode = values.GetString(colOpportunityTypeCode.DataName),
|
||||
TypeDesc = Localiser.GetOpportunityTypeCaption((Sax.OpportunityType)OpportunityTypeCodes.GetTypeForCode(values.GetString(colOpportunityTypeCode.DataName))),
|
||||
Position = values.GetString(colPosition.DataName),
|
||||
Outline = values.GetString(colOutline.DataName),
|
||||
RegionCaption = model.GetRegionCaption(values.GetString(colRegionId.DataName).ToSysId()),
|
||||
SportCaption = model.GetSportCaption(values.GetString(colSportId.DataName).ToSysId()),
|
||||
CreatedOnFmt = Localiser.FormatDate(values.GetDateTime(colCreatedOn.DataName)),
|
||||
PublishedOnFmt = Localiser.FormatDate(values.GetDateTime(colPublishedOn.DataName)),
|
||||
ExpiresOnFmt = Localiser.FormatDate(values.GetDateTime(colExpiresOn.DataName)),
|
||||
StatusCode = values.GetString(colStatus.DataName),
|
||||
StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName))
|
||||
};
|
||||
responseData.Opportunities.Add(opportunityData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,14 +49,14 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
|
||||
// Check Regions.
|
||||
SysId regionIdCountry = model.ExtractSysId(model.OrganisationRegionIdCountry);
|
||||
SaxRegion regionCountry = Internals.GetRegion(regionIdCountry);
|
||||
SaxRegion.Data regionCountry = Internals.GetRegion(regionIdCountry);
|
||||
if (SysId.IsValid(regionIdCountry) && regionCountry == null)
|
||||
{
|
||||
SaLogger.Warn(fn + " Country region not found. Id: " + model.OrganisationRegionIdCountry + ". " + GetLogSuffix());
|
||||
return Json(responseData.SetGoHome(messageTitle, Localiser["msg.error.system"]));
|
||||
}
|
||||
SysId regionIdAddressProvince= model.ExtractSysId(model.OrganisationAddressRegionIdProvince);
|
||||
SaxRegion regionProvince = Internals.GetRegion(regionIdAddressProvince);
|
||||
SaxRegion.Data regionProvince = Internals.GetRegion(regionIdAddressProvince);
|
||||
if (SysId.IsValid(regionIdAddressProvince) && regionProvince == null)
|
||||
{
|
||||
SaLogger.Warn(fn + " Province region not found. Id: " + model.OrganisationAddressRegionIdProvince + ". " + GetLogSuffix());
|
||||
|
||||
@@ -37,6 +37,7 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
public String AccountTitle { get; set; }
|
||||
public String AccountFirstName { get; set; }
|
||||
public String AccountLastName { get; set; }
|
||||
public String AccountAbout { get; set; }
|
||||
public String AccountGender { get; set; }
|
||||
public Sax.Gender GetAccountGender()
|
||||
{
|
||||
@@ -106,6 +107,17 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
responseData.SetControlError(nameof(AccountLastName), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName)]);
|
||||
}
|
||||
|
||||
// About.
|
||||
if (AccountAbout != null)
|
||||
{
|
||||
responseData.SetControlValue(nameof(AccountAbout), AccountAbout);
|
||||
if (!StringUtil.IsEmpty(AccountAbout))
|
||||
{
|
||||
if (StringUtil.GetLength(AccountAbout) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_About))
|
||||
responseData.SetControlError(nameof(AccountAbout), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_About)]);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Date of birth.
|
||||
if (AccountDobYear != null)
|
||||
@@ -135,7 +147,7 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
SysId regionIdCountry = ExtractSysId(AccountRegionIdCountry);
|
||||
if (AccountRegionIdCountry != null && SysId.IsValid(regionIdCountry))
|
||||
{
|
||||
SaxRegion regionCountry = Internals.GetRegion(regionIdCountry);
|
||||
SaxRegion.Data regionCountry = Internals.GetRegion(regionIdCountry);
|
||||
if (regionCountry == null)
|
||||
responseData.SetControlError(nameof(AccountRegionIdCountry), Localiser["msg.validation.invalid.value"]);
|
||||
}
|
||||
@@ -144,7 +156,7 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
if (AccountRegionIdProvince != null)
|
||||
{
|
||||
SysId regionIdProvince = ExtractSysId(AccountRegionIdProvince);
|
||||
SaxRegion regionProvince = Internals.GetRegion(regionIdProvince);
|
||||
SaxRegion.Data regionProvince = Internals.GetRegion(regionIdProvince);
|
||||
if (regionProvince == null)
|
||||
responseData.SetControlError(nameof(AccountRegionIdProvince), Localiser["msg.validation.invalid.value"]);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
{
|
||||
get
|
||||
{
|
||||
if (userCanManageOrganisationMembers == null && ValidUserSession)
|
||||
if (userCanManageOrganisationMembers == null && ValidUserSession)
|
||||
{
|
||||
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||
prmUserOrganisation.UserAccountIdsIncluded.Add(SessionData.User.UserAccountId);
|
||||
@@ -158,7 +158,7 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
public List<RegionData> GetRegionDataList_Active()
|
||||
{
|
||||
List<RegionData> regions = new List<RegionData>();
|
||||
foreach (SaxRegion region in DataCacheConsole.GetActiveRegions())
|
||||
foreach (SaxRegion.Data region in DataCacheConsole.GetActiveRegions())
|
||||
{
|
||||
RegionData regionData = new RegionData()
|
||||
{
|
||||
@@ -177,10 +177,10 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
}
|
||||
public String GetRegionCaption(SysId regionId)
|
||||
{
|
||||
SaxRegion region = DataCacheConsole.GetActiveRegions().Find(item => item.Id.Equals(regionId));
|
||||
SaxRegion.Data region = DataCacheConsole.GetAllRegions().Find(item => item.Id.Equals(regionId));
|
||||
return Localiser.GetRegionName(region);
|
||||
}
|
||||
public String GetRegionCaption(SaxRegion region)
|
||||
public String GetRegionCaption(SaxRegion.Data region)
|
||||
{
|
||||
return Localiser.GetRegionName(region);
|
||||
}
|
||||
@@ -197,7 +197,7 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
public List<SportData> GetSportDataList_Active()
|
||||
{
|
||||
List<SportData> sports = new List<SportData>();
|
||||
foreach (SaxSport sport in DataCacheConsole.GetActiveSports())
|
||||
foreach (SaxSport.Data sport in DataCacheConsole.GetActiveSports())
|
||||
{
|
||||
SportData sportData = new SportData()
|
||||
{
|
||||
@@ -210,14 +210,45 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
}
|
||||
return sports;
|
||||
}
|
||||
// Sport caption.
|
||||
public String GetSportCaption(SysId sportId)
|
||||
{
|
||||
SaxSport sport = DataCacheConsole.GetActiveSports().Find(item => item.Id.Equals(sportId));
|
||||
SaxSport.Data sport = DataCacheConsole.GetAllSports().Find(item => item.Id.Equals(sportId));
|
||||
return GetSportCaption(sport);
|
||||
}
|
||||
public String GetSportCaption(SaxSport.Data sport)
|
||||
{
|
||||
if (sport == null) return "";
|
||||
return Localiser.GetSportName(sport);
|
||||
}
|
||||
public String GetSportCaption(SaxSport sport)
|
||||
// Speciality type.
|
||||
public bool SportSpecialityNotRelevant(SysId sportId)
|
||||
{
|
||||
return Localiser.GetSportName(sport);
|
||||
SaxSport.Data sport = DataCacheConsole.GetAllSports().Find(item => item.Id.Equals(sportId));
|
||||
return SportSpecialityNotRelevant(sport);
|
||||
}
|
||||
public bool SportSpecialityNotRelevant(SaxSport.Data sport)
|
||||
{
|
||||
if (sport == null) return true;
|
||||
return sport.SpecialityLabel == Sax.SportSpecialityLabel.NotRelevant;
|
||||
}
|
||||
// Speciality label.
|
||||
public String GetSportSpecialityLabel(SysId sportId)
|
||||
{
|
||||
SaxSport.Data sport = DataCacheConsole.GetAllSports().Find(item => item.Id.Equals(sportId));
|
||||
return GetSportSpecialityLabel(sport);
|
||||
}
|
||||
public String GetSportSpecialityLabel(SaxSport.Data sport)
|
||||
{
|
||||
if (sport == null) return "";
|
||||
switch (sport.SpecialityLabel)
|
||||
{
|
||||
case Sax.SportSpecialityLabel.Positon:
|
||||
return Localiser["label.position"];
|
||||
case Sax.SportSpecialityLabel.Discipline:
|
||||
return Localiser["label.discipline"];
|
||||
}
|
||||
return Localiser["label.speciality"];
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user