v1.1.3.0
This commit is contained in:
@@ -46,26 +46,80 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
if (!ValidUserSession)
|
||||
return RedirectToAction("", "");
|
||||
|
||||
// Model.
|
||||
Model_Organisation_Opportunities model = new Model_Organisation_Opportunities(Localiser);
|
||||
|
||||
// Get a suitable organisation for the filter.
|
||||
SysId filterOrganisationId = SessionData_Online.Filter.OrganisationIdMember;
|
||||
String filterOrganisationCaption = SessionData_Online.Filter.OrganisationCaptionMember;
|
||||
OrganisationData organisationData = GetOrganisationForFilter(filterOrganisationId, filterOrganisationCaption);
|
||||
if (organisationData == null)
|
||||
return RedirectToAction("", "");
|
||||
|
||||
// Make a note of the filter values.
|
||||
model.Filter.OrganisationId = SysId.ToString(organisationData.Id);
|
||||
model.Filter.OrganisationCaption = organisationData.Caption;
|
||||
SessionData_Online.Filter.OrganisationIdMember = organisationData.Id;
|
||||
SessionData_Online.Filter.OrganisationCaptionMember = organisationData.Caption;
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
[HttpGet]
|
||||
public IActionResult Members()
|
||||
{
|
||||
// Validate session.
|
||||
if (!ValidUserSession)
|
||||
return RedirectToAction("", "");
|
||||
|
||||
// Model.
|
||||
Model_Organisation_Members model = new Model_Organisation_Members(Localiser);
|
||||
|
||||
// Get a suitable organisation for the filter.
|
||||
SysId filterOrganisationId = SessionData_Online.Filter.OrganisationIdMember;
|
||||
String filterOrganisationCaption = SessionData_Online.Filter.OrganisationCaptionMember;
|
||||
OrganisationData organisationData = GetOrganisationForFilter(filterOrganisationId, filterOrganisationCaption);
|
||||
if (organisationData == null)
|
||||
return RedirectToAction("", "");
|
||||
|
||||
// Make a note of the filter values.
|
||||
model.Filter.OrganisationId = SysId.ToString(organisationData.Id);
|
||||
model.Filter.OrganisationCaption = organisationData.Caption;
|
||||
SessionData_Online.Filter.OrganisationIdMember = organisationData.Id;
|
||||
SessionData_Online.Filter.OrganisationCaptionMember = organisationData.Caption;
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public class OrganisationData
|
||||
{
|
||||
public OrganisationData(SysId id) { Id = id; }
|
||||
public SysId Id { get; }
|
||||
public String Caption { get; set; }
|
||||
}
|
||||
private OrganisationData GetOrganisationForFilter(SysId filterOrganisationId, String filterOrganisationCaption)
|
||||
{
|
||||
// Check that user is associated with organisations.
|
||||
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||
prmUserOrganisation.UserAccountIdsIncluded.Add(SessionData.User.UserAccountId);
|
||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||
if (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) < 1)
|
||||
return RedirectToAction("", "");
|
||||
|
||||
// Model.
|
||||
Model_Organisation_Opportunities model = new Model_Organisation_Opportunities(Localiser);
|
||||
return null;
|
||||
|
||||
// Filter organisation.
|
||||
model.Filter.OrganisationId = SysId.ToString(SessionData_Online.Filter.OrganisationIdMember);
|
||||
model.Filter.OrganisationCaption = SessionData_Online.Filter.OrganisationCaptionMember;
|
||||
if (StringUtil.IsEmpty(model.Filter.OrganisationId))
|
||||
OrganisationData organisationData = new OrganisationData(filterOrganisationId);
|
||||
organisationData.Caption = filterOrganisationCaption;
|
||||
if (!SysId.IsValid(filterOrganisationId) || StringUtil.IsEmpty(filterOrganisationCaption))
|
||||
{
|
||||
// Pick the first Organisation that the user is a member of.
|
||||
ColumnDfn colOrganisationId = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.OrganisationId);
|
||||
ColumnDfn colOrganisationName = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_Name);
|
||||
prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||
prmUserOrganisation.UserAccountIdsIncluded.Add(SessionData.User.UserAccountId);
|
||||
if (SysId.IsValid(filterOrganisationId))
|
||||
prmUserOrganisation.OrganisationIdsIncluded.Add(filterOrganisationId);
|
||||
prmUserOrganisation.OrganisationMembersOnly = true;
|
||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||
prmUserOrganisation.SortColumns.Add(colOrganisationName);
|
||||
@@ -76,29 +130,26 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
|
||||
{
|
||||
NamedValue.Map values = resultSet.GetRecordValues();
|
||||
model.Filter.OrganisationId = SysId.ToString(new SysId(values.GetLong(colOrganisationId.DataName)));
|
||||
if (!StringUtil.IsEmpty(model.Filter.OrganisationId))
|
||||
SysId organisationId = new SysId(values.GetLong(colOrganisationId.DataName));
|
||||
if (SysId.IsValid(organisationId))
|
||||
{
|
||||
model.Filter.OrganisationCaption = values.GetString(colOrganisationName.DataName);
|
||||
organisationData = new OrganisationData(organisationId);
|
||||
organisationData.Caption = values.GetString(colOrganisationName.DataName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (SysId.IsValid(model.Filter.OrganisationId.ToSysId()) && StringUtil.IsEmpty(model.Filter.OrganisationCaption))
|
||||
if (SysId.IsValid(organisationData.Id) && StringUtil.IsEmpty(organisationData.Caption))
|
||||
{
|
||||
// Organisation has been identified but no caption available as yet.
|
||||
using (SaxOrganisation organisation = AccountMgr.GetOrganisationById(model.Filter.OrganisationId.ToSysId()))
|
||||
using (SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationData.Id))
|
||||
{
|
||||
if (organisation != null)
|
||||
model.Filter.OrganisationCaption = organisation.Name;
|
||||
organisationData.Caption = organisation.Name;
|
||||
}
|
||||
}
|
||||
// Make a note of the filter values.
|
||||
SessionData_Online.Filter.OrganisationIdMember = model.Filter.OrganisationId.ToSysId();
|
||||
SessionData_Online.Filter.OrganisationCaptionMember = model.Filter.OrganisationCaption;
|
||||
|
||||
return View(model);
|
||||
return organisationData;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user