public class DashboardWorkQueue : System.Web.Services.WebService
{
private IErrorHandling _IErrorHandling;
private IServiceHandler.Notification.ISubscription _ISubscription;
private INotificationLeadTime _INotificationLeadTime;
private IServiceHandler.Audit.IAuditNote _IAuditNote;
public DashboardWorkQueue()
{
_IErrorHandling = new ErrorHandling();
var container = new StructureMap.Container(new Service.Infrastructure.StructureMapRegistry());
_ISubscription = container.GetInstance<isubscription>();
_INotificationLeadTime = new Service.Notification.NotificationLeadTime();
_IAuditNote = container.GetInstance<iservicehandler.audit.iauditnote>();
}
[WebMethod]
public int EnableDisable(Guid userID, int recordID, Model.SubscriptionSource.SubscriptionSourceEnum subscriptionSourceEnum, bool enabled)
{
int subscriptionID = 0;
try
{
subscriptionID = Systrends.TMS.Business.ServiceHandler.DashboardWorkQueue.EnableOrDisable(userID, recordID, subscriptionSourceEnum, enabled);
}
catch (Exception ex)
{
_IErrorHandling.LogErrorNoRedirect(ex);
throw;
}
return subscriptionID;
}
[WebMethod]
public int Enabled(Guid userID, int recordID, Model.SubscriptionSource.SubscriptionSourceEnum subscriptionSourceEnum)
{
Model.Subscription subscriptionModel = new Model.Subscription();
int subscriptionID = 0;
try
{
subscriptionModel = _ISubscription.Get(userID, recordID, subscriptionSourceEnum, Model.SubscriptionOrigination.SubscriptionOriginationEnum.UserSubscription);
if (subscriptionModel == null)
return 0;
if (subscriptionModel.DesktopLink.HasValue)
{
if (subscriptionModel.DesktopLink.Value == true)
subscriptionID = subscriptionModel.Id;
}
}
catch (Exception ex)
{
_IErrorHandling.LogErrorNoRedirect(ex);
throw;
}
return subscriptionID;
}
[WebMethod]
public void Save(int taskID, int subscriptionID, string note, Guid userID, DateTime dateDue, int filingId)
{
Systrends.TMS.Business.ServiceHandler.Notification notification = new Notification();
try
{
if (taskID == 0)
{
taskID = Systrends.TMS.Business.ServiceHandler.Task.Insert(subscriptionID, note, userID, dateDue);
notification.CreateTaskNotification(subscriptionID, taskID, dateDue, userID);
AddAuditNote(filingId, userID, "", "Insert");
}
else
{
Systrends.TMS.Business.ServiceHandler.Task.Update(taskID, note, userID, dateDue);
notification.CreateTaskNotification(subscriptionID, taskID, dateDue, userID);
AddAuditNote(filingId, userID, "", "Update");
}
}
catch (Exception ex)
{
_IErrorHandling.LogErrorNoRedirect(ex);
throw;
}
}
[WebMethod]
public List<Model.Task> GetList(int subscriptionID)
{
try
{
<Model.Task> list = Task.GetList(subscriptionID);
return list;
}
catch (Exception ex)
{
_IErrorHandling.LogErrorNoRedirect(ex);
throw;
}
}
[WebMethod]
public Model.Task Get(int taskID)
{
try
{
Model.Task model = Task.Get(taskID);
return model;
}
catch (Exception ex)
{
_IErrorHandling.LogErrorNoRedirect(ex);
throw;
}
}
[WebMethod]
public void DeleteTask(int taskID,int filingId,Guid userId)
{
try
{
Model.Users user = SessionWrapper.UserModel;
Systrends.TMS.Business.ServiceHandler.Task.Delete_ById(taskID);
if (Guid.Empty != userId)
{
AddAuditNote(filingId, userId, "", "Delete");
}
}
catch (Exception ex)
{
_IErrorHandling.LogErrorNoRedirect(ex);
throw;
}
}
private void AddAuditNote(int filingId, Guid userId, string createdBy, string changeBy)
{
string message = null;
if (userId == Guid.Empty)
{
Systrends.TMS.Data.User_View userView = RepositoryEF.User.UserRepository.Get_ByUserName(createdBy);
userId = userView.UserId;
}
switch (changeBy)
{
case "Insert":
message = "Inserted Work Queue note";
break;
case "Update":
message = "Updated Work Queue note";
break;
case "Delete":
message = "Deleted Work Queue note";
break;
default:
break;
}
if (string.IsNullOrEmpty(message))
{
message = changeBy;
}
_IAuditNote.Insert(Model.AuditNote.EntityType.Filing, filingId, userId, message);
}
}
}