or
var viewModel = kendo.observable({
teamMembersSource: new kendo.data.DataSource({
transport: {
read: {
url: '@(Url.Action("Get", "TeamMembers", new { Area = "API" }))',
data: {
companyID: '@(((Signuper.WebApp.Infrastructure.SignuperProfessional)User).CompanyID)'
}
},
destroy: {
url: '@(Url.Action("Delete", "TeamMembers", new { Area = "API" }))',
type: "DELETE",
datatype: "json",
},
parameterMap: function (options, type) {
if (type == "destroy") {
return { ID: options.UserID };
}
else
return options;
}
},
schema: {
model: {
id: "UserID",
fields:
{
UserID: { type: "number"},
FirstName: {type: "string"},
LastName: {type: "string"},
Gender: {type:"string"},
CompanyID: { type: "number" },
EmailAdress: { type: "string" },
IsCompanyAdmin: { type: "boolean" },
DateOfBirth: { type: "Date" }
}
},
data: "TeamMembers",
total: "TotalCount"
},
public dynamic Delete(long ID)
{
var user = membership.GetProfessional(ID);
if (user == null)
return new { success = false, errors = "The user that is set to be deleted cannot be found" };
if (ID == ((Signuper.WebApp.Infrastructure.SignuperUser)User).UserID)
return new { success = false, errors = "You cannot delete the currently logged in user" }; // You cant delete your own user
if (((Signuper.WebApp.Infrastructure.SignuperProfessional)User).CompanyID != user.CompanyID)
return new { success = false, errors = "You cannot delete the user of a different company" };
membership.DeleteUser(ID);
return new { success = true, errors = "You cannot delete the user of a different company" };
}