using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Neo.Afx.ComponentModel;
using Neo.Afx.Services.Queries.Entities;
namespace Neo.Afx.Services.Queries
{
///
/// Queries database context container
///
public class QueriesDatabase : Database
{
///
/// Initializes a new instance of the class.
///
public QueriesDatabase()
: base(new QueriesContext())
{
}
#region UserName
///
/// Gets the name of the user.
///
///
/// The name of the user.
///
public string UserName
{
get
{
var user = "";
if(HttpContext.Current.User != null && HttpContext.Current.User.Identity.IsAuthenticated)
{
user = HttpContext.Current.User.Identity.Name.ToLower();
}
return user;
}
}
#endregion
#region Create
///
/// Creates the specified query type ID.
///
/// The query type ID.
/// The query source ID.
/// The entity ID.
/// The item ID.
/// The assigned to user role ID.
/// The assigned to user ID.
/// The assigned to user date.
/// The description.
/// The response email address.
/// The response contact address.
///
public KeyValuePair Create(short queryTypeID, short querySourceID, int entityID, long itemID, short assignedToUserRoleID, long assignedToUserID, DateTime assignedToUserDate, string description, string responseEmailAddress, string responseContactAddress)
{
KeyValuePair returnResult;
try
{
var result = Context.Pr_QueryCreate(queryTypeID, querySourceID, entityID, itemID, assignedToUserRoleID, assignedToUserID, assignedToUserDate, description, responseEmailAddress, responseContactAddress, UserName).SingleOrDefault();
returnResult = result.HasValue ? new KeyValuePair(result.Value, (result.Value != -1) ? String.Empty : "Unknown error occured") : new KeyValuePair(-1, "Unknown error occured");
}
catch(Exception ex)
{
returnResult = new KeyValuePair(-1, ex.InnerException.Message);
}
return returnResult;
}
#endregion
#region Update
///
/// Updates the specified query ID.
///
/// The query ID.
/// The query type ID.
/// The query source ID.
/// The assigned to user role ID.
/// The assigned to user ID.
/// The assigned to user date.
/// The description.
/// The response email addresses.
/// The response contact numbers.
///
public string Update(long queryID, short queryTypeID, short querySourceID, short? assignedToUserRoleID, long? assignedToUserID, DateTime? assignedToUserDate, string description, string responseEmailAddresses, string responseContactNumbers)
{
string error;
try
{
var result = Context.Pr_QueryUpdate(queryID, queryTypeID, querySourceID, assignedToUserRoleID, assignedToUserID, assignedToUserDate, description, responseEmailAddresses, responseContactNumbers, UserName).SingleOrDefault();
if(result.HasValue)
{
error = (result.Value) ? String.Empty : "Unknown error occured";
}
else
{
error = "Unknown error occured";
}
}
catch(Exception ex)
{
error = ex.InnerException.Message;
}
return error;
}
#endregion
#region UpdateStatus
///
/// Updates the status.
///
/// The query ID.
/// The query status ID.
///
public string UpdateStatus(long queryID, short queryStatusID)
{
string error;
try
{
var result = Context.Pr_QueryUpdateStatus(queryID, queryStatusID, UserName).SingleOrDefault();
if(result.HasValue)
{
error = (result.Value) ? String.Empty : "Unknown error occured";
}
else
{
error = "Unknown error occured";
}
}
catch(Exception ex)
{
error = ex.InnerException.Message;
}
return error;
}
#endregion
#region Delete
///
/// Deletes the specified query ID.
///
/// The query ID.
///
public string Delete(long queryID)
{
string error;
try
{
var result = Context.Pr_QueryDelete(queryID, UserName).SingleOrDefault();
if(result.HasValue)
{
error = (result.Value) ? String.Empty : "Unknown error occured";
}
else
{
error = "Unknown error occured";
}
}
catch(Exception ex)
{
error = ex.InnerException.Message;
}
return error;
}
#endregion
#region GetQuery
///
/// Gets the query.
///
/// The query ID.
///
public Query GetQuery(long queryID)
{
return Context.Queries.Where(a => a.QueryID == queryID).FirstOrDefault();
}
#endregion
#region GetQueries
///
/// Gets the queries.
///
/// The entity ID.
/// The item ID.
///
public IEnumerable GetQueries(int entityID, long itemID)
{
return GetQueries(entityID, itemID, "", "", "").ToList();
}
///
/// Gets the queries.
///
/// The entity ID.
/// The item ID.
/// The query status.
/// The assigned to user role ID.
/// The assigned to user ID.
///
public IEnumerable GetQueries(int entityID, long itemID, string queryStatus, string assignedToUserRoleID, string assignedToUserID)
{
return Context.Pr_QuerySearch(entityID, itemID, queryStatus, assignedToUserRoleID, assignedToUserID).ToList();
}
#endregion
#region GetQueryStatuses
///
/// Gets the query statuses.
///
///
public IEnumerable GetQueryStatuses()
{
return from q in Context.QueryStatus
where !q.IsCancelled
select q;
}
#endregion
#region GetQuerySources
///
/// Gets the query sources.
///
///
public IEnumerable GetQuerySources()
{
return from q in Context.QuerySources
where !q.IsCancelled
select q;
}
#endregion
#region GetQueryTypes
///
/// Gets the query types.
///
///
public IEnumerable GetQueryTypes()
{
return from q in Context.QueryTypes
where !q.IsCancelled
select q;
}
#endregion
}
}