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 } }