コード例 #1
0
        public IHttpActionResult AddClientTicketResponse()
        {
            try
            {
                using (MaxMasterDbEntities db = new MaxMasterDbEntities())
                {
                    var form = HttpContext.Current.Request.Form;

                    ActivitiesLog actLog = new ActivitiesLog();
                    actLog.AssignedBy  = User.Identity.GetUserId();
                    actLog.AssignedTo  = form.Get("assignedTo");
                    actLog.Status      = "Pending";
                    actLog.Description = form.Get("description");
                    actLog.TaskDate    = MasterDataController.GetIndianTime(DateTime.Now);
                    actLog.TaskId      = form.Get("taskId");

                    db.ActivitiesLogs.Add(actLog);
                    db.SaveChanges();
                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                new Error().logAPIError(System.Reflection.MethodBase.GetCurrentMethod().Name, ex.ToString(), ex.StackTrace);
                return(Content(HttpStatusCode.InternalServerError, "An error occured, please try again later"));
            }
        }
コード例 #2
0
        public IHttpActionResult AddMaterialRequest()
        {
            try
            {
                using (MaxMasterDbEntities db = new MaxMasterDbEntities())
                {
                    var form        = HttpContext.Current.Request.Form;
                    var items       = JsonConvert.DeserializeObject <List <BilledItemsModel> >(form.Get("items"));
                    var emp         = db.Employees.Where(x => x.Role_Id == "8").FirstOrDefault();
                    var category    = db.Categories.Where(x => x.Name == "Stock").FirstOrDefault().Id;
                    var subCategory = db.SubCategories.Where(x => x.Name == "Stock").FirstOrDefault().Id;


                    StockRequest stockReq = new StockRequest();

                    stockReq.Employee          = User.Identity.GetUserId();
                    stockReq.Client            = form.Get("Client");
                    stockReq.ExpectedStockDate = Convert.ToDateTime(form.Get("expectedDate"));
                    stockReq.Project           = Convert.ToInt32(form.Get("project"));
                    stockReq.Status            = "Under Review";
                    stockReq.Notes             = form.Get("notes");
                    stockReq.RequestDate       = DateTime.Now;
                    stockReq.LastUpdated       = DateTime.Now;
                    stockReq.UpdatedBy         = User.Identity.GetUserId();

                    for (int i = 0; i < items.Count(); i++)
                    {
                        StockRequestMapping srm = new StockRequestMapping();
                        srm.ItemId    = items[i].ModelId;
                        srm.Quanitity = items[i].Quantity;

                        stockReq.StockRequestMappings.Add(srm);
                    }

                    Activity act = new Activity();


                    if (emp != null)
                    {
                        act.AssignedTo = emp.AspNetUserId;
                    }

                    act.CreatedBy      = User.Identity.GetUserId();
                    act.Status         = "Open";
                    act.Subject        = "Material request for project";
                    act.Project_Id     = Convert.ToInt32(form.Get("project"));
                    act.EDOC           = Convert.ToDateTime(form.Get("expectedDate"));
                    act.Client_Id      = form.Get("Client");
                    act.Priority       = 0;
                    act.CreatedDate    = DateTime.Now;
                    act.TaskType       = "Client";
                    act.TaskOwner      = act.AssignedTo;
                    act.Description    = form.Get("notes");
                    act.TaskId         = RandomString(4);
                    stockReq.TaskId    = act.TaskId;
                    act.Category_Id    = Convert.ToInt32(category);
                    act.SubCategory_Id = Convert.ToInt32(subCategory);

                    ActivitiesLog activityLog = new ActivitiesLog();
                    activityLog.Status      = act.Status;
                    activityLog.Description = act.Description;
                    activityLog.TaskDate    = MasterDataController.GetIndianTime(DateTime.UtcNow);
                    activityLog.AssignedBy  = act.CreatedBy;
                    activityLog.AssignedTo  = act.TaskOwner;

                    act.ActivitiesLogs.Add(activityLog);

                    db.Activities.Add(act);

                    db.StockRequests.Add(stockReq);
                    db.SaveChanges();

                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                new Error().logAPIError(System.Reflection.MethodBase.GetCurrentMethod().Name, ex.ToString(), ex.StackTrace);
                return(Content(HttpStatusCode.InternalServerError, "An error occured, please try again later"));
            }
        }
コード例 #3
0
        public IHttpActionResult EditStockRequest(int StockId)
        {
            try
            {
                using (MaxMasterDbEntities db = new MaxMasterDbEntities())
                {
                    var form                     = HttpContext.Current.Request.Form;
                    var ItemsRequired            = JsonConvert.DeserializeObject <List <BilledItemsModel> >(form.Get("items"));
                    var status                   = form.Get("status");
                    var task                     = form.Get("taskId");
                    var previouslyRequestedItems = db.StockRequestMappings.Where(x => x.StockReqId == StockId).ToList();
                    /* Get the stock through id */
                    StockRequest stockRequest = db.StockRequests.Find(StockId);

                    stockRequest.Client            = form.Get("Client");
                    stockRequest.ExpectedStockDate = Convert.ToDateTime(form.Get("expectedDate"));
                    stockRequest.Project           = Convert.ToInt32(form.Get("project"));
                    stockRequest.Status            = form.Get("status");
                    stockRequest.Notes             = form.Get("notes");
                    stockRequest.LastUpdated       = DateTime.Now;
                    stockRequest.UpdatedBy         = User.Identity.GetUserId();

                    /* Find task with the taskid  */
                    Activity      activity    = db.Activities.Find(task);
                    ActivitiesLog activityLog = new ActivitiesLog();

                    if (status.ToUpper() == "UNDER REVIEW")
                    {
                        foreach (var item in previouslyRequestedItems)
                        {
                            db.StockRequestMappings.Remove(item);
                            db.SaveChanges();
                        }

                        /* Add requested items to stock */
                        for (int i = 0; i < ItemsRequired.Count(); i++)
                        {
                            StockRequestMapping srm = new StockRequestMapping();
                            srm.ItemId    = ItemsRequired[i].ModelId;
                            srm.Quanitity = ItemsRequired[i].Quantity;

                            stockRequest.StockRequestMappings.Add(srm);
                        }

                        activity.CreatedBy       = User.Identity.GetUserId();
                        db.Entry(activity).State = System.Data.Entity.EntityState.Modified;
                    }

                    else if (status == "Approved")
                    {
                        /* Get Stock Manager and assign activity to manager from super admin */
                        var stockManager = db.StockManagers.Where(x => x.IsActive == true).FirstOrDefault();

                        foreach (var item in previouslyRequestedItems)
                        {
                            db.StockRequestMappings.Remove(item);
                            db.SaveChanges();
                        }

                        /* Add requested items to stock */
                        for (int i = 0; i < ItemsRequired.Count(); i++)
                        {
                            StockRequestMapping srm = new StockRequestMapping();
                            srm.ItemId    = ItemsRequired[i].ModelId;
                            srm.Quanitity = ItemsRequired[i].Quantity;

                            stockRequest.StockRequestMappings.Add(srm);
                        }

                        for (int j = 0; j < ItemsRequired.Count(); j++)
                        {
                            int quantity = ItemsRequired[j].Quantity;
                            int modelId  = ItemsRequired[j].ModelId;

                            /* Get items with model id based on manufactured date */

                            var itemsAvailable = db.Items.Where(x => x.ItemModelId == modelId && x.IsAvailable == true).OrderBy(x => x.StockInDate).ToList();
                            if (itemsAvailable.Count() >= ItemsRequired[j].Quantity)
                            {
                                for (int k = 0; k < ItemsRequired[j].Quantity; k++)
                                {
                                    Item item = db.Items.Find(itemsAvailable[k].Id);

                                    item.ProjectId   = Convert.ToInt32(form.Get("project"));
                                    item.IsAvailable = false;

                                    db.Entry(item).State = System.Data.Entity.EntityState.Modified;
                                }
                            }
                        }

                        if (stockManager != null)
                        {
                            activity.Status    = "Pending";
                            activity.TaskOwner = stockManager.AspNetUserId;

                            activityLog.TaskDate    = DateTime.Now;
                            activityLog.AssignedBy  = User.Identity.GetUserId();
                            activityLog.AssignedTo  = stockManager.AspNetUserId;
                            activityLog.Description = "Items for the project is approved. Dispatch stock as early as possible";
                            activityLog.Status      = "Pending";

                            activity.ActivitiesLogs.Add(activityLog);
                            db.Entry(activity).State = System.Data.Entity.EntityState.Modified;
                        }
                    }

                    else if (status == "Declined")
                    {
                        activity.Status    = "Resolved";
                        activity.TaskOwner = stockRequest.Employee;

                        activityLog.TaskDate    = DateTime.Now;
                        activityLog.AssignedBy  = User.Identity.GetUserId();
                        activityLog.AssignedTo  = activity.CreatedBy;
                        activityLog.Status      = "Resolved";
                        activityLog.Description = "Your request for stock is declined";

                        activity.ActivitiesLogs.Add(activityLog);
                        db.Entry(activity).State = System.Data.Entity.EntityState.Modified;
                    }

                    else if (status == "Dispatched")
                    {
                        for (int j = 0; j < ItemsRequired.Count(); j++)
                        {
                            int quantity = ItemsRequired[j].Quantity;
                            int modelId  = ItemsRequired[j].ModelId;
                            var stock    = db.Items.Where(x => x.IsAvailable == false && x.StockOutDate == null).OrderBy(x => x.StockInDate).ToList();
                            if (stock.Count() >= ItemsRequired[j].Quantity)
                            {
                                for (int k = 0; k < ItemsRequired[j].Quantity; k++)
                                {
                                    Item item = db.Items.Find(stock[k].Id);

                                    item.ProjectId    = Convert.ToInt32(form.Get("project"));
                                    item.IsAvailable  = false;
                                    item.StockOutDate = DateTime.Now;

                                    db.Entry(item).State = System.Data.Entity.EntityState.Modified;
                                }

                                activity.TaskOwner = activity.CreatedBy;
                                activity.Status    = "Resolved";

                                activityLog.TaskDate    = DateTime.Now;
                                activityLog.AssignedBy  = User.Identity.GetUserId();
                                activityLog.AssignedTo  = activity.CreatedBy;
                                activityLog.Status      = "Resolved";
                                activityLog.Description = "Your items were dispatched successfully ";
                                activityLog.HoursWorked = Convert.ToInt32(form.Get("hoursWorked"));

                                activity.ActivitiesLogs.Add(activityLog);
                                db.Entry(activity).State = System.Data.Entity.EntityState.Modified;
                            }
                            else
                            {
                                stockRequest.Status = form.Get("status");
                                return(Content(HttpStatusCode.InternalServerError, "Requested stock is not available to dispatch"));
                            }
                        }
                    }

                    db.Entry(stockRequest).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                }
                return(Ok());
            }
            catch (Exception ex)
            {
                new Error().logAPIError(System.Reflection.MethodBase.GetCurrentMethod().Name, ex.ToString(), ex.StackTrace);
                return(Content(HttpStatusCode.InternalServerError, "An error occured, please try again later"));
            }
        }
コード例 #4
0
        public IHttpActionResult FeedBackFromClient()
        {
            try
            {
                using (MaxMasterDbEntities db = new MaxMasterDbEntities())
                {
                    var form = HttpContext.Current.Request.Form;

                    var    ticketId = form.Get("TicketId");
                    string status   = form.Get("Status");

                    Activity      activity = db.Activities.Where(x => x.TaskId == ticketId).FirstOrDefault();
                    ActivitiesLog actLog   = new ActivitiesLog();
                    if (activity != null)
                    {
                        if (status == "true")
                        {
                            activity.Status        = "Closed";
                            activity.CompletedDate = MasterDataController.GetIndianTime(DateTime.Now);

                            actLog.TaskDate    = MasterDataController.GetIndianTime(DateTime.Now);
                            actLog.TaskId      = ticketId;
                            actLog.AssignedBy  = activity.TaskOwner;
                            actLog.AssignedTo  = activity.CreatedBy;
                            actLog.Status      = "Closed by assignee";
                            actLog.Description = "Satisfactory";

                            db.ActivitiesLogs.Add(actLog);
                            db.Entry(activity).State = System.Data.Entity.EntityState.Modified;

                            var taskCreator = db.Employees.Where(x => x.AspNetUserId == activity.CreatedBy && x.Active == true).FirstOrDefault();

                            db.SaveChanges();
                        }

                        else
                        {
                            if (activity.Status == "Resolved")
                            {
                                activity.Status        = "Reopened";
                                activity.CompletedDate = null;

                                var lastWorked = db.ActivitiesLogs.Where(x => x.TaskId == ticketId).OrderByDescending(x => x.TaskDate).FirstOrDefault();

                                activity.Status        = "Reopened";
                                activity.TaskOwner     = lastWorked.AssignedBy;
                                activity.CompletedDate = null;

                                actLog.TaskDate    = MasterDataController.GetIndianTime(DateTime.Now);
                                actLog.TaskId      = ticketId;
                                actLog.AssignedTo  = lastWorked.AssignedBy;
                                actLog.AssignedBy  = User.Identity.GetUserId();
                                actLog.Status      = "Reopened";
                                actLog.Description = "Ticket Reopened ";

                                db.ActivitiesLogs.Add(actLog);
                                db.Entry(activity).State = System.Data.Entity.EntityState.Modified;

                                var taskCreator = db.Employees.Where(x => x.AspNetUserId == activity.CreatedBy && x.Active == true).FirstOrDefault();

                                if (taskCreator != null)
                                {
                                }
                                else
                                {
                                    var Client = db.Clients.Where(x => x.AspNetUserId == activity.CreatedBy).FirstOrDefault();
                                    if (Client != null)
                                    {
                                        string subject = "Your Ticket Id #" + activity.TaskId + " ( " + activity.Subject + " ) is reopened. ";
                                        string from    = "";
                                        string to      = Client.Email;
                                        var    body    = @"<div style=""border: 1px solid gray;margin-top:2px; margin-right: 2px;padding: 9px;"" > 
                                     <p> Dear " + Client.Name + ", </p>" +
                                                         "<p> your ticket with Id " + activity.TaskId + " ( " + activity.Subject + " ) is reopened and the support team will contact you soon.  " + "</p>" +
                                                         "<p> We encourage you to kindly use our support portal http://ourclientSupport.azurewebsites.net for reporting issues/Service Requests with support team or to seek any further updates on your ticket. </p>" +
                                                         "<p> CUSTOMER SERVICE: 9 66 67 24 635 </p>" +
                                                         " </div>";
                                        bool sendEmail = new EmailController().SendEmail(from, "Task Management System", to, subject, body);
                                    }
                                }

                                db.SaveChanges();
                            }
                        }
                    }
                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                new Error().logAPIError(System.Reflection.MethodBase.GetCurrentMethod().Name, ex.ToString(), ex.StackTrace);
                return(Content(HttpStatusCode.InternalServerError, "An error occured, please try again later"));
            }
        }
コード例 #5
0
        public IHttpActionResult AddClientRequest()
        {
            try
            {
                using (MaxMasterDbEntities db = new MaxMasterDbEntities())
                {
                    var form         = HttpContext.Current.Request.Form;
                    var clientId     = form.Get("clientId");
                    var departmentId = form.Get("departmentId");
                    int orgId        = Convert.ToInt32(form.Get("OrgId"));
                    var categoryId   = form.Get("categoryId");
                    var u            = User.Identity.GetUserId();

                    Activity activity = new Activity();

                    var user      = db.Clients.Where(x => x.AspNetUserId == u && x.Active == true).FirstOrDefault();
                    var createdby = user.Id;

                    var clientOrg = user.OrgId;

                    var emp = db.Employees.Where(x => x.Role_Id == "8").FirstOrDefault();
                    if (emp != null)
                    {
                        activity.AssignedTo = emp.AspNetUserId;
                        activity.TaskOwner  = emp.AspNetUserId;
                    }

                    activity.CreatedBy  = User.Identity.GetUserId();
                    activity.TaskType   = "Client";
                    activity.Client_Id  = user.AspNetUserId;
                    activity.Project_Id = Convert.ToInt32(form.Get("projectId"));
                    activity.EDOC       = DateTime.Now.AddDays(2);

                    activity.TaskId = RandomString(4, orgId, createdby, true);
                    db.Activities.Add(activity);

                    ActivitiesLog activityLog = new ActivitiesLog();

                    activityLog.Status      = activity.Status;
                    activityLog.Description = activity.Description;
                    activityLog.TaskDate    = MasterDataController.GetIndianTime(DateTime.UtcNow);
                    activityLog.AssignedBy  = activity.CreatedBy;
                    activityLog.AssignedTo  = activity.TaskOwner;

                    activity.ActivitiesLogs.Add(activityLog);

                    var files = HttpContext.Current.Request.Files;

                    var fileAttachments = new List <HttpPostedFile>();

                    for (int i = 0; i < files.Count; i++)
                    {
                        fileAttachments.Add(files[i]);
                    }

                    foreach (var file in fileAttachments)
                    {
                        var fileDirecory = HttpContext.Current.Server.MapPath("~/Task");

                        if (!Directory.Exists(fileDirecory))
                        {
                            Directory.CreateDirectory(fileDirecory);
                        }

                        var fileName = file.FileName;
                        var filePath = Path.Combine(fileDirecory, fileName);
                        file.SaveAs(filePath);

                        ActivityAttachment actAttachments = new ActivityAttachment();

                        actAttachments.AttachmentURL = Path.Combine(ConfigurationManager.AppSettings["ApiUrl"], "Task", fileName);
                        actAttachments.Name          = Path.GetFileNameWithoutExtension(file.FileName);
                        activityLog.ActivityAttachments.Add(actAttachments);
                    }


                    var    from   = "";
                    var    to     = "";
                    string name   = "";
                    var    taskId = activity.TaskId;

                    var client = db.Clients.Where(x => x.AspNetUserId == activity.CreatedBy && x.Active == true).FirstOrDefault();
                    to   = client.Email;
                    name = client.Name;


                    var empl = db.Employees.Where(x => x.AspNetUserId == activity.AssignedTo && x.Active == true).FirstOrDefault();
                    to   = empl.Email;
                    name = empl.FirstName + " " + empl.LastName;

                    string subject = "You have created a new ticket with ticket Id #" + taskId;

                    var body = @"<div style=""border: 1px solid gray;margin-top:2px; margin-right: 2px;padding: 9px;"" > 
                                     <p> Dear " + name + ", </p>" +
                               "<p> Greetings! Thank you for contacting our support team. We received your request in our system and we have started working on priority.</p>" +
                               "<p> We will approach you soon if we require any further details to probe and expedite on the issue. Please allow us some time to give you an update on the progress on resolution.Your patience till then is much appreciated.</p> " +
                               "<p> We encourage you to kindly use our support portal http://ourclientSupport.azurewebsites.net for reporting issues/Service Requests with support team or to seek any further updates on your ticket. </p>" +
                               "<p> If you are experiencing any delays or for any further assistance you are feel free to contact on below numbers:</p>" +
                               "<p> CUSTOMER SERVICE: 9 66 67 24 365 </p>" +
                               " </div>";
                    bool sendmail = new EmailController().SendEmail(from, "Task Management System", to, subject, body);

                    db.SaveChanges();
                }
                return(Ok());
            }
            catch (Exception ex)
            {
                return(Content(System.Net.HttpStatusCode.InternalServerError, "An error occured please try again later"));
            }
        }
コード例 #6
0
        public IHttpActionResult EditActivity()
        {
            try
            {
                using (MaxMasterDbEntities db = new MaxMasterDbEntities())
                {
                    var form           = HttpContext.Current.Request.Form;
                    var taskId         = form.Get("taskId");
                    var userId         = User.Identity.GetUserId();
                    var hoursWorked    = form.Get("hoursWorked");
                    var quantityWorked = form.Get("quantityWorked");
                    int orgId          = Convert.ToInt32(form.Get("OrgId"));
                    var actionType     = form.Get("actionType");

                    var activityNotification = db.AddActivityNotifications(taskId, User.Identity.GetUserId());

                    Activity mainTask = db.Activities.Find(taskId);

                    if (actionType == "Assign")
                    {
                        var assigneeList = JsonConvert.DeserializeObject <List <Assignee> >(form.Get("assigneeList"));

                        if (assigneeList.Count() > 1)
                        {
                            foreach (var assignee in assigneeList)
                            {
                                var  parentTaskLog     = JsonConvert.DeserializeObject <List <ActivityLog> >(form.Get("ParentTaskDetails"));
                                bool CreateNewActivity = AddChildTask(mainTask, assignee, parentTaskLog);
                                if (!CreateNewActivity)
                                {
                                    return(Content(HttpStatusCode.InternalServerError, "Faied to assignee task"));
                                }
                            }
                        }
                        else
                        {
                            if (mainTask.ParentTask_Id != null)
                            {
                                ActivitiesLog parentLog = new ActivitiesLog();

                                parentLog.TaskId     = mainTask.ParentTask_Id;
                                parentLog.TaskDate   = MasterDataController.GetIndianTime(DateTime.Now);
                                parentLog.AssignedBy = User.Identity.GetUserId();
                                parentLog.AssignedTo = assigneeList[0].AssigneeId;
                                parentLog.Status     = "Open";
                                if (hoursWorked != "" && hoursWorked != "NaN")
                                {
                                    parentLog.HoursWorked = Convert.ToInt32(form.Get("hoursWorked"));
                                }
                                parentLog.Description = form.Get("description");
                                if (quantityWorked != "" && quantityWorked != "NaN")
                                {
                                    parentLog.QuantityWorked = Convert.ToInt32(form.Get("quantityWorked"));
                                }

                                db.ActivitiesLogs.Add(parentLog);
                            }

                            mainTask.Status        = "Open";
                            mainTask.TaskOwner     = assigneeList[0].AssigneeId;
                            mainTask.LastUpdatedBy = User.Identity.GetUserId();
                            mainTask.LastUpdated   = MasterDataController.GetIndianTime(DateTime.Now);
                        }
                    }

                    else
                    {
                        var      childTasks = db.Activities.Where(x => x.ParentTask_Id == mainTask.TaskId).ToList();
                        Activity parentTask = db.Activities.Where(x => x.TaskId == mainTask.ParentTask_Id).FirstOrDefault();

                        ActivitiesLog activityLog = new ActivitiesLog();

                        if (childTasks.Count > 0)
                        {
                            foreach (var child in childTasks)
                            {
                                ActivitiesLog childLog = new ActivitiesLog();

                                childLog.TaskId        = child.TaskId;
                                childLog.AssignedBy    = User.Identity.GetUserId();
                                childLog.TaskDate      = MasterDataController.GetIndianTime(DateTime.Now);
                                childLog.Description   = form.Get("description");
                                childLog.BudgetedHours = Convert.ToInt32(form.Get("budgetedHours"));

                                db.ActivitiesLogs.Add(childLog);
                            }
                        }

                        if (actionType == "InProcess")
                        {
                            activityLog.AssignedTo = User.Identity.GetUserId();
                            activityLog.StartDate  = MasterDataController.GetIndianTime(Convert.ToDateTime(form.Get("edos")));
                            activityLog.EndDate    = MasterDataController.GetIndianTime(Convert.ToDateTime(form.Get("edoc")));
                            activityLog.Status     = "InProcess";

                            mainTask.Status = "InProcess";
                        }
                        else if (actionType == "Pending")
                        {
                            activityLog.AssignedTo = User.Identity.GetUserId();
                            activityLog.StartDate  = MasterDataController.GetIndianTime(Convert.ToDateTime(form.Get("edos")));
                            activityLog.EndDate    = MasterDataController.GetIndianTime(Convert.ToDateTime(form.Get("edoc")));
                            activityLog.Status     = "Pending";

                            mainTask.Status = "Pending";
                        }
                        else if (actionType == "Resolved")
                        {
                            activityLog.AssignedTo = mainTask.CreatedBy;
                            activityLog.AssignedBy = User.Identity.GetUserId();
                            activityLog.Status     = "Resolved";

                            mainTask.TaskOwner = mainTask.CreatedBy;
                            mainTask.Status    = "Resolved";
                        }
                        else if (actionType == "AcceptToClose")
                        {
                            activityLog.Status     = "Closed by assignee";
                            activityLog.AssignedBy = mainTask.TaskOwner;
                            activityLog.AssignedTo = mainTask.CreatedBy;

                            mainTask.TaskOwner = mainTask.CreatedBy;
                            mainTask.Status    = "Closed";
                        }
                        else if (actionType == "Comments")
                        {
                            activityLog.AssignedTo = mainTask.TaskOwner;
                            activityLog.AssignedBy = User.Identity.GetUserId();

                            mainTask.Status = mainTask.Status;
                        }
                        else
                        {
                            if (actionType == "Reopen")
                            {
                                activityLog.AssignedTo = mainTask.LastUpdatedBy;
                                activityLog.AssignedBy = User.Identity.GetUserId();
                                activityLog.Status     = "Reopened";

                                mainTask.Status = "Reopened";
                            }
                        }

                        if (parentTask != null)
                        {
                            ActivitiesLog parentLog = new ActivitiesLog();

                            parentLog.TaskId     = parentTask.ParentTask_Id;
                            parentLog.TaskDate   = MasterDataController.GetIndianTime(DateTime.Now);
                            parentLog.AssignedBy = User.Identity.GetUserId();
                            parentLog.AssignedTo = parentTask.TaskOwner;

                            if (actionType == "Pending" || actionType == "Comments")
                            {
                                parentLog.Status = "Pending";
                            }
                            else if (actionType == "InProcess")
                            {
                                parentLog.Status = "InProcess";
                            }
                            else if (actionType == "Assign")
                            {
                                parentLog.Status = "Open";
                            }
                            else if (actionType == "Reopen")
                            {
                                parentLog.Status = "Reopened";
                            }
                            else if (actionType == "AcceptToClose")
                            {
                                var childTasksList = db.Activities.Where(x => x.ParentTask_Id == mainTask.TaskId).ToList();
                            }
                            else if (actionType == "Resolved")
                            {
                            }
                            else
                            {
                                parentLog.Status = "";
                            }

                            parentLog.BudgetedHours = Convert.ToInt32(form.Get("budgetedHours"));
                            if (hoursWorked != "" && hoursWorked != "NaN")
                            {
                                parentLog.HoursWorked = Convert.ToInt32(form.Get("hoursWorked"));
                            }
                            parentLog.Description = form.Get("description");
                            if (quantityWorked != "" && quantityWorked != "NaN")
                            {
                                parentLog.QuantityWorked = Convert.ToInt32(form.Get("quantityWorked"));
                            }
                            db.ActivitiesLogs.Add(parentLog);
                        }

                        activityLog.AssignedBy    = User.Identity.GetUserId();
                        activityLog.TaskDate      = MasterDataController.GetIndianTime(DateTime.Now);
                        activityLog.Description   = form.Get("description");
                        activityLog.BudgetedHours = Convert.ToInt32(form.Get("budgetedHours"));
                        if (hoursWorked != "" && hoursWorked != "NaN")
                        {
                            activityLog.HoursWorked = Convert.ToInt32(form.Get("hoursWorked"));
                        }

                        if (quantityWorked != "" && quantityWorked != "NaN")
                        {
                            activityLog.QuantityWorked = Convert.ToInt32(form.Get("quantityWorked"));
                        }
                        mainTask.ActivitiesLogs.Add(activityLog);

                        mainTask.LastUpdatedBy = User.Identity.GetUserId();
                        mainTask.LastUpdated   = MasterDataController.GetIndianTime(DateTime.Now);

                        db.Entry(mainTask).State = System.Data.Entity.EntityState.Modified;
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                new Error().logAPIError(System.Reflection.MethodBase.GetCurrentMethod().Name, ex.ToString(), ex.StackTrace);
                return(Content(HttpStatusCode.InternalServerError, "An error occured, please try again later"));
            }
        }
コード例 #7
0
        public bool AddChildTask(Activity activity, Assignee assignee, List <ActivityLog> parentLog)
        {
            try
            {
                using (MaxMasterDbEntities db = new MaxMasterDbEntities())
                {
                    var u    = User.Identity.GetUserId();
                    var user = db.Employees.Where(x => x.AspNetUserId == u).FirstOrDefault();

                    Activity      task        = new Activity();
                    ActivitiesLog activityLog = new ActivitiesLog();

                    task.AssignedTo     = assignee.AssigneeId;
                    task.Category_Id    = activity.Category_Id;
                    task.SubCategory_Id = activity.SubCategory_Id;
                    if (assignee.Quantity != null)
                    {
                        task.Subject = activity.Subject + " Quanity - " + assignee.Quantity;
                    }
                    else
                    {
                        task.Subject = activity.Subject;
                    }

                    task.TaskOwner     = assignee.AssigneeId;
                    task.Description   = activity.Description;
                    task.EDOC          = Convert.ToDateTime(activity.EDOC);
                    task.Status        = "Open";
                    task.TaskType      = activity.TaskType;
                    task.Client_Id     = activity.Client_Id;
                    task.Project_Id    = activity.Project_Id;
                    task.Priority      = activity.Priority;
                    task.CreatedBy     = User.Identity.GetUserId();
                    task.CreatedDate   = MasterDataController.GetIndianTime(DateTime.UtcNow);
                    task.ParentTask_Id = activity.TaskId;
                    if (assignee.Quantity != null)
                    {
                        task.Quantity = assignee.Quantity;
                    }
                    //else
                    //{
                    //    task.Quantity = null;
                    //}

                    task.TaskId = GenerateTaskId();

                    db.Activities.Add(task);
                    if (parentLog.Count() > 0)
                    {
                        for (int i = 0; i < parentLog.Count(); i++)
                        {
                            ActivitiesLog Log = new ActivitiesLog();

                            Log.Status         = parentLog[i].Status;
                            Log.Description    = parentLog[i].Description;
                            Log.TaskDate       = Convert.ToDateTime(parentLog[i].TaskDate);
                            Log.AssignedBy     = parentLog[i].AssignedById;
                            Log.AssignedTo     = parentLog[i].AssignedToId;
                            Log.HoursWorked    = parentLog[i].HoursWorked;
                            Log.QuantityWorked = parentLog[i].QuantityWorked;

                            task.ActivitiesLogs.Add(Log);
                        }
                    }

                    activityLog.Status      = task.Status;
                    activityLog.Description = task.Description;
                    activityLog.TaskDate    = MasterDataController.GetIndianTime(DateTime.UtcNow);
                    activityLog.AssignedBy  = task.CreatedBy;
                    activityLog.AssignedTo  = assignee.AssigneeId;
                    activityLog.TaskId      = activity.TaskId;

                    task.ActivitiesLogs.Add(activityLog);
                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                new Error().logAPIError(System.Reflection.MethodBase.GetCurrentMethod().Name, ex.ToString(), ex.StackTrace);
                return(false);
            }
        }