Ejemplo n.º 1
0
        public override void UpdateAfterSimulation()
        {
            try
            {
                if (Placer != null)
                {
                    UpdatePlacer();
                }
                if (!DedicatedServer)
                {
                    ProcessAnimations();
                }

                if (GridTask.IsComplete)
                {
                    CheckDirtyGrids();
                }

                if (IsClient)
                {
                    if (!MTask.IsComplete)
                    {
                        MTask.Wait();
                    }

                    if (MTask.IsComplete && MTask.valid && MTask.Exceptions != null)
                    {
                        TaskHasErrors(ref MTask, "MTask");
                    }
                }
            }
            catch (Exception ex) { Log.Line($"Exception in SessionAfterSim: {ex}"); }
        }
Ejemplo n.º 2
0
        public void PostTask(Action task, Func <bool> isValid, Func <string> toStringImpl = null)
        {
            MTask mtask = new MTask(task, isValid, toStringImpl);

            //Debug.WriteLine($"-------Post task {mtask}");
            PostTask(mtask);
        }
Ejemplo n.º 3
0
        public void TaskStack_TwoTasksThenOne()
        {
            var taskStack = new MTaskStack();
            var num       = new MInt(5);
            var a         = new MTask((t) => num.Value == 4);
            var b         = new MTask((t) => num.Value == 3);
            var c         = new MTask((t) => num.Value == 2);

            c.OnComplete += () => num.Value = 0;
            taskStack.PushQueue(a);
            taskStack.PushQueue(b);

            num.Value--;
            taskStack.Evaluate();

            Assert.AreSame(b, taskStack.Current);

            num.Value--;
            taskStack.Evaluate();
            taskStack.Evaluate();

            taskStack.PushQueue(c);
            taskStack.Evaluate();
            num.Value = 2;
            taskStack.Evaluate();

            Assert.AreEqual(0, num.Value);
            Assert.AreEqual(0, taskStack.Count);
        }
Ejemplo n.º 4
0
        public async void PostTask(MTask task) //用async声明的函数,调用的时候会立即创建线程。
        {
            if (task == null)
            {
                return;
            }

            while (true)
            {
                if (_taskList.Count < 500)//允许队列中最多放置多少个任务。
                {
                    try
                    {
                        //Debug.WriteLine("Post task " + task);
                        lock (_taskQueueLocker) _taskList.Enqueue(task);
                        _taskWaiter.Set();
                        //如果成功添加,则退出。
                        break;
                    }
                    catch (Exception e)
                    {
                        //如果task执行太慢,这样会Enqueue很多Task,在内存受限时,会导致内存溢出异常。
                        //那么先让当前线程阻塞,让任务处理线程先工作一会儿。但这个动作并不会阻碍主线程。因为PostTask本身是Async的。
                        await SleepAndWaitForProcessing();
                    }
                }
                else
                {
                    await SleepAndWaitForProcessing();
                }
            }
        }
Ejemplo n.º 5
0
        private void AttachingFiles(MTask task, ApplicationUser user, int companyId)
        {
            string basePath = Path.Combine(_configuration["Cloud:BasePath"], _configuration["Cloud:CloudFolderName"], user.Id, companyId.ToString());

            StringBuilder builder = new StringBuilder();

            for (int i = 0; i < task.AttachedFiles.Count; i++)
            {
                builder.Clear();

                if (task.AttachedFiles[i].AttachedFile != null &&
                    task.AttachedFiles[i].AttachedFile.AttachedFileId <= 0)
                {
                    builder.Append(basePath + task.AttachedFiles[i].AttachedFile.Path);
                    if (!System.IO.File.Exists(builder.ToString()))
                    {
                        task.AttachedFiles.Remove(task.AttachedFiles[i]);
                        i--;
                    }
                    else
                    {
                        task.AttachedFiles[i].AttachedFile.Owner = user;
                        task.AttachedFiles[i].AttachedFile.Name  = Path.GetFileName(task.AttachedFiles[i].AttachedFile.Path);
                        task.AttachedFiles[i].AttachedFile.Path  = builder.ToString().Replace(Path.Combine(_configuration["Cloud:BasePath"], _configuration["Cloud:CloudFolderName"]), "");
                    }
                }
            }
        }
Ejemplo n.º 6
0
 public ObjectResult <MTask> Add(MTask model)
 {
     model.CreateDate = DateTime.Now;
     model.Id         = Guid.NewGuid().ToString();
     model.UpdateDate = DateTime.Now;
     model.MemberId   = _userService.User().Id;
     return(new ObjectResult <MTask>(Success.success, _dal.Create(model.Id, model)));
 }
Ejemplo n.º 7
0
        public ActionResult AddTask(MTask objTask)
        {
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Login", "User"));
            }
            try
            {
                if (objTask.DateEnd < objTask.DateIni)
                {
                    ViewBag.ErrorSave = "La fecha Fin no puede ser menor a la fecha inicial";
                    return(View(objTask));
                }

                if (objTask.DateEnd == objTask.DateIni && objTask.HourIni == objTask.HourEnd)
                {
                    ViewBag.ErrorSave = "La Hora Inicio no puede ser igual a la Hora Fin";
                    return(View(objTask));
                }

                if (ModelState.IsValid)
                {
                    //valores por defecto
                    //objTask.IdUser = ((MSerUser)Session["Usuario"]).IdUser;

                    if (objTask.IdUser == 0)
                    {
                        objTask.IdUser = ((MSerUser)Session["Usuario"]).IdUser;
                    }

                    string mensaje  = "";
                    int    IdTask   = 0;
                    int    resultDb = fnGNTranTask(objTask, "I", ref IdTask, ref mensaje);

                    if (resultDb != 0)
                    {
                        TempData["Success"] = mensaje + " N° de Actividad generado: " + IdTask + ".";
                        return(RedirectToAction("AddTask"));
                    }
                    else
                    {
                        ViewBag.ErrorSave = mensaje;
                        return(View(objTask));
                    }
                }
                else
                {
                    ViewBag.ErrorSave = "Error al grabar, Por favor verifique los datos ingresados.";
                    return(View(objTask));
                }
            }
            catch (Exception ex)
            {
                ViewBag.ErrorSave = "Error al grabar datos de la solicitud de servicio: " + ex.Message;
                return(View(objTask));
            }
        }
Ejemplo n.º 8
0
        public void Task_Cancelled()
        {
            var num = new MInt(5);
            var a   = new MTask((t) => num.Value == 4);

            a.OnComplete += () => { num.Value = 2; };
            a.OnEnd      += () => { num.Value = 3; };
            a.Cancel();

            Assert.That(num.Value == 3);
        }
Ejemplo n.º 9
0
        private void RemoveTask(MTask obj)
        {
            DataITAD.Instance.tasksCollection.Remove(obj);

            foreach (KeyValuePair <Member, MTask> keyValuePair in DataITAD.Instance.MenagmentCollection)
            {
                if (keyValuePair.Value.Equals(obj))
                {
                    DataITAD.Instance.MenagmentCollection.Remove(keyValuePair);
                }
            }
        }
Ejemplo n.º 10
0
        public ActionResult EditTask(MTask objTask)
        {
            try
            {
                if (objTask.IdUser == 0)
                {
                    objTask.IdUser = ((MSerUser)Session["Usuario"]).IdUser;
                }

                if (objTask.DateEnd == objTask.DateIni && objTask.HourIni == objTask.HourEnd)
                {
                    ViewBag.ErrorSave = "La Hora Inicio no puede ser igual a la Hora Fin";
                    return(View(objTask));
                }

                if (ModelState.IsValid)
                {
                    string mensaje  = "";
                    int    result   = 0;
                    int    resultDb = fnGNTranTask(objTask, "U", ref result, ref mensaje);

                    if (resultDb != 0)
                    {
                        TempData["Success"] = mensaje;

                        //Para evitar que se vea el id en la Url------------
                        MTask objMTask = new MTask();
                        objMTask.IdTask = objTask.IdTask;

                        var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(objMTask);
                        TempData["DataTask"] = jsonString;
                        return(RedirectToAction("EditTask"));
                        //---------------------------------------------------
                    }
                    else
                    {
                        ViewBag.ErrorSave = mensaje;
                        return(View(objTask));
                    }
                }
                else
                {
                    ViewBag.ErrorSave = "Error al grabar, Por favor verifique los datos ingresados.";
                    return(View(objTask));
                }
            }
            catch (Exception ex)
            {
                ViewBag.ErrorSave = "Error al grabar datos la Actividad: " + ex.Message;
                return(View(objTask));
            }
        }
Ejemplo n.º 11
0
        public async Task <MTaskResponse> SaveAsync(MTask mTask)
        {
            try
            {
                await _mTaskRepository.AddAsync(mTask);

                return(new MTaskResponse(mTask));
            }
            catch (Exception ex)
            {
                return(new MTaskResponse($"An error ocurred while saving the MTask: {ex.Message}"));
            }
        }
Ejemplo n.º 12
0
        public void Task_Completed()
        {
            var num = new MInt(5);
            var a   = new MTask((t) => num.Value == 4);

            a.OnComplete += () => { num.Value = 2; };

            a.Evaluate();
            Assert.That(num.Value == 5);

            num.Value--;
            a.Evaluate();
            Assert.That(num.Value == 2);
        }
Ejemplo n.º 13
0
        public void TaskStack_SingleCompleted()
        {
            var taskStack = new MTaskStack();
            var num       = new MInt(5);
            var a         = new MTask((t) => num.Value == 4);

            a.OnComplete += () => num.Value = 0;
            taskStack.PushQueue(a);
            num.Value--;
            taskStack.Evaluate();

            Assert.That(num.Value == 0);
            Assert.AreEqual(0, taskStack.Count);
        }
Ejemplo n.º 14
0
        private void DoneTassk(MTask obj)
        {
            obj.State        = TaskState.Done;
            obj.finishedTime = DateTime.Now.ToString("dd/MM HH:mm");
            DataITAD.Instance.doneTasksCollection.Add(obj);
            DataITAD.Instance.tasksCollection.Remove(obj);

            DataITAD.Instance.tasksCollection.Remove(obj);

            foreach (KeyValuePair <Member, MTask> keyValuePair in DataITAD.Instance.MenagmentCollection)
            {
                if (keyValuePair.Value.Equals(obj))
                {
                    keyValuePair.Key.CountTask++;
                }
            }
        }
Ejemplo n.º 15
0
        public void TaskStack_ThreeQueuedThreeCapacity()
        {
            var taskStack = new MTaskStack(3);
            var num       = new MInt(5);
            var a         = new MTask((t) => num.Value == 4);
            var b         = new MTask((t) => num.Value == 3);
            var c         = new MTask((t) => num.Value == 2);

            c.OnComplete += () => num.Value = 0;
            taskStack.PushQueue(a);
            taskStack.PushQueue(b);
            taskStack.PushQueue(c);

            Assert.AreSame(c, taskStack.Next);

            Assert.AreEqual(3, taskStack.Count);
        }
Ejemplo n.º 16
0
 public PendableAction(Device device, Action action, double timeout, Action timeoutAction)
 {
     this.device = device;
     this.action = action;
     //TODO 是否存在不设置timeout和timeoutAction的情况?
     this.timeout       = timeout;
     this.timeoutAction = timeoutAction;
     mtask = new MTask(() =>
     {
         lock (locker)
         {
             timeoutAction?.Invoke();
             action = null;
         }
     }, null);
     Env.DoLater(mtask, TimeSpan.FromMilliseconds(timeout));
 }
Ejemplo n.º 17
0
        public ActionResult AddTask()
        {
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Login", "User"));
            }
            var ObjAccesUser = ((MSerUser)Session["Usuario"]).UserAcces;
            var ObjAcces     = ObjAccesUser.Where(p => p.Action == "ListTask").First();

            if (ObjAcces != null)
            {
                if (ObjAcces.Create == false)
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }


            List <MTask>          listTask = new List <MTask>();
            MMEnterprisesEntities db       = new MMEnterprisesEntities();

            MUser objUser = new MUser();
            MTask objMask = new MTask();

            objMask.listTaskPerson = new List <MTaskPerson>();
            objMask.IdCreatedBy    = ((MSerUser)Session["Usuario"]).IdUser;
            objMask.IdUser         = ((MSerUser)Session["Usuario"]).IdUser;

            //var ListUserCreate = (from result in db.GNListConfigTkOnBehalfOf(((MSerUser)Session["Usuario"]).IdUser, null, null).ToList()
            //                      select new MConfigTkOnBehalfOf
            //                      {
            //                          IdUser = result.IdUserOnBehalfOf,
            //                          Name = objUser.Desencriptar(result.NumIdentificationOnBehalfOf) + " - " + result.LastNameOnBehalfOf + (result.NameOnBehalfOf != "" ? " " + result.NameOnBehalfOf : ""),
            //                      }).ToList();

            //SelectList ListUserCreateSelectList = new SelectList(ListUserCreate, "IdUser", "Name");

            //objMask.ListUserCreate = ListUserCreateSelectList;

            if (TempData["Success"] != null)
            {
                ViewBag.SuccessSave = TempData["Success"];
            }

            return(View(objMask));
        }
Ejemplo n.º 18
0
        public async void AddNewTask(string taskName)
        {
            try
            {
                var task = new MTask();
                task.Name = taskName;
                HttpContent conteudo = new StringContent(JsonConvert.SerializeObject(task), Encoding.UTF8,
                                                         "application/json");
                var response = await client.PostAsync("/api/tasks", conteudo);

                response.EnsureSuccessStatusCode();
                GetTasks();
            }
            catch (Exception e)
            {
                MessageBox.Show("Não foi possível adicionar uma nova Tarefa");
            }
        }
Ejemplo n.º 19
0
        private void AddTask(Window obj)
        {
            if (Executor.Workload + Dificult < 10)
            {
                MTask mTask = new MTask()
                {
                    Name        = TaskName,
                    Description = TaskDescription,
                    digicult    = Dificult
                };
                Executor.Workload += Dificult;
                DataITAD.Instance.tasksCollection.Add(mTask);

                DataITAD.Instance.MenagmentCollection.Add(new KeyValuePair <Member, MTask>(Executor, mTask));
                obj.Close();
            }
            else
            {
                MessageBoxResult errormsg = MessageBox.Show(Executor.Name + " is to workloaded", "OK", MessageBoxButton.OK);
            }
        }
Ejemplo n.º 20
0
        public async Task <MTaskResponse> UpdateAsync(int id, MTask mTask)
        {
            var existingMTask = await _mTaskRepository.FindById(id);

            if (existingMTask == null)
            {
                return(new MTaskResponse("MTask not found"));
            }

            existingMTask.Name = mTask.Name;

            try
            {
                _mTaskRepository.Update(existingMTask);

                return(new MTaskResponse(existingMTask));
            }
            catch (Exception ex)
            {
                return(new MTaskResponse($"An error ocurred while updating MTask: {ex.Message}"));
            }
        }
Ejemplo n.º 21
0
        public ActionResult ListTask(string submit, MTask objMTask)
        {
            if (objMTask == null || objMTask.IdTask == 0)
            {
                return(View());
            }

            var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(objMTask);

            TempData["DataTask"] = jsonString;

            switch (submit)
            {
            case "searchRow":
                return(RedirectToAction("DetailTask", "Task"));

            case "editRow":
                return(RedirectToAction("EditTask", "Task"));

            default:
                return(View());
            }
        }
Ejemplo n.º 22
0
        public ActionResult ListTask()
        {
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Login", "User"));
            }

            var ObjAccesUser = ((MSerUser)Session["Usuario"]).UserAcces;
            var ObjAcces     = ObjAccesUser.Where(p => p.Action == "ListTask").First();

            if (ObjAcces != null)
            {
                if (ObjAcces.Visible == false)
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }



            MTask objMTask = new MTask();

            return(View(objMTask));
        }
Ejemplo n.º 23
0
        public static void PostSequencialTask(Func <Task> task, Func <bool> isValid = null, Func <string> toStringImpl = null)
        {
            var mtask = new MTask(task, isValid, toStringImpl);

            _instance._sequencialTaskPool.PostTask(mtask);
        }
Ejemplo n.º 24
0
 public ActionResult <ObjectResult <MTask> > Put([FromBody] MTask model)
 {
     return(_taskService.Update(model));
 }
Ejemplo n.º 25
0
 public static void PostTask(MTask task) => _instance.TaskPool.PostTask(task);
Ejemplo n.º 26
0
        public ActionResult GetListTask(MTask objFilter)
        {
            List <MTask>          objListTask = new List <MTask>();
            MMEnterprisesEntities db          = new MMEnterprisesEntities();

            int?     IdTask           = null;
            DateTime?dttDateIni       = null;
            DateTime?dttDateEnd       = null;
            int?     IdResponsable    = null;
            int?     IdPriority       = null;
            int?     IdStatus         = null;
            int?     IdTypeTask       = null;
            int?     IdServiceRequest = null;
            int?     IdUser           = ((MSerUser)Session["Usuario"]).IdUser;
            int?     IdFatherTask     = null;
            string   strtittle        = "";
            int?     IdColaborator    = null;
            int?     IdFollower       = null;

            if (objFilter.IdTask > 0)
            {
                IdTask = objFilter.IdTask;
            }

            if (objFilter.DateIni != null)
            {
                dttDateIni = objFilter.DateIni;
            }

            if (objFilter.DateEnd != null)
            {
                dttDateEnd = objFilter.DateEnd;
            }

            if (objFilter.IdPersonEmployee != null && objFilter.IdPersonEmployee > 0)
            {
                IdResponsable = objFilter.IdPersonEmployee;
            }

            if (objFilter.IdPriority > 0)
            {
                IdPriority = objFilter.IdPriority;
            }

            if (objFilter.IdStatus > 0)
            {
                IdStatus = objFilter.IdStatus;
            }

            if (objFilter.IdTypeTask > 0)
            {
                IdTypeTask = objFilter.IdTypeTask;
            }

            if (objFilter.IdServiceRequest != null)
            {
                IdServiceRequest = objFilter.IdServiceRequest;
            }

            if (objFilter.IdUser > 0)
            {
                IdUser = objFilter.IdUser;
            }

            if (objFilter.Tittle != null)
            {
                strtittle = objFilter.Tittle;
            }

            if (objFilter.IdFatherTask != null)
            {
                IdFatherTask = objFilter.IdFatherTask;
            }

            if (objFilter.Tittle != null)
            {
                strtittle = objFilter.Tittle;
            }

            if (objFilter.IdColaborator != null)
            {
                IdColaborator = objFilter.IdColaborator;
            }

            if (objFilter.IdFollower != null)
            {
                IdFollower = objFilter.IdFollower;
            }

            objListTask = fnListTask(IdTask, dttDateIni, dttDateEnd, IdResponsable, strtittle, IdPriority, IdStatus, IdTypeTask, IdServiceRequest, IdUser, IdFatherTask, IdColaborator, IdFollower);

            return(Json(objListTask, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 27
0
        public static int fnGNTranTask(MTask objTask, string TransactionType, ref int IdTask, ref string Mensaje)
        {
            try
            {
                MMEnterprisesEntities db           = new MMEnterprisesEntities();
                Utilities             objUtilities = new Utilities();

                string activity       = "";
                string strfromaddress = ConfigurationParameterController.fnListMConfigurationParameter(null, "MAILNOTIFICACIONES").FirstOrDefault().Value;
                string strSubject     = ConfigurationParameterController.fnListMConfigurationParameter(null, "SUBJECTNOTIFICACIONES").FirstOrDefault().Value;
                string strPassword    = ConfigurationParameterController.fnListMConfigurationParameter(null, "PASSWORDNOTIFICACIONES").FirstOrDefault().Value;
                string strHost        = ConfigurationParameterController.fnListMConfigurationParameter(null, "HOSTNOTIFICACIONES").FirstOrDefault().Value;
                string strPuerto      = ConfigurationParameterController.fnListMConfigurationParameter(null, "PORTNOTIFICACIONES").FirstOrDefault().Value;
                string strMiembros    = "";
                if (objTask.listTaskPerson.Count() > 0)
                {
                    strMiembros = objTask.listTaskPerson.Select(x => { return(x.PersonEmployeeLastName); }).ToList().Aggregate((a, b) => $"{a},{b}");
                }

                if (objTask.PersonEmployeeLastName != "")
                {
                    if (strMiembros != "")
                    {
                        strMiembros = strMiembros + ", ";
                    }

                    strMiembros = strMiembros + objTask.PersonEmployeeLastName;
                }


                string strBody = "";
                if (objTask.TypeTask == "Reunión")
                {
                    strBody = ConfigurationParameterController.fnListMConfigurationParameter(null, "BODYNOTIFICACIONESMEETING").FirstOrDefault().Value;
                    strBody = strBody.Replace("[Members]", strMiembros);
                    strBody = strBody.Replace("[Place]", objTask.Place == null ? "" : objTask.Place);
                }
                else
                {
                    strBody = ConfigurationParameterController.fnListMConfigurationParameter(null, "BODYNOTIFICACIONESTASK").FirstOrDefault().Value;
                    strBody = strBody.Replace("[Type]", objTask.TypeTask == null ? "" : objTask.TypeTask.ToString());
                }

                strBody = strBody.Replace("[Title]", objTask.Tittle == null ? "" : objTask.Tittle.ToString());
                strBody = strBody.Replace("[DateIni]", objTask.DateIni == null ? "" : objTask.DateIni.Value.ToShortDateString());
                strBody = strBody.Replace("[DateEnd]", objTask.DateEnd.Value.ToShortDateString());
                DateTime timeIni        = DateTime.Today.Add(objTask.HourIni);
                string   displayTimeIni = timeIni.ToString("hh:mm tt");
                strBody = strBody.Replace("[HourIni]", displayTimeIni);

                DateTime timeEnd        = DateTime.Today.Add(objTask.HourEnd);
                string   displayTimeEnd = timeEnd.ToString("hh:mm tt");
                strBody = strBody.Replace("[HourEnd]", displayTimeEnd);
                strBody = strBody.Replace("[Priority]", objTask.PriorityTask == null ? "" : objTask.PriorityTask.ToString());
                strBody = strBody.Replace("[Status]", objTask.Status == null ? "" : objTask.Status.ToString());

                int SqlResult;
                int SqlResultTask;

                SqlParameter paramOutIdTask = new SqlParameter();
                paramOutIdTask.ParameterName = "@IdTask";
                paramOutIdTask.SqlDbType     = System.Data.SqlDbType.Int;
                paramOutIdTask.Direction     = System.Data.ParameterDirection.InputOutput;
                paramOutIdTask.Value         = objTask.IdTask;

                SqlParameter paramTransactionType = new SqlParameter();
                paramTransactionType.ParameterName = "@TransactionType";
                if (objTask.IdTask == 0 && TransactionType == "U")
                {
                    //la task no existe, debe ser creada.
                    paramTransactionType.Value = "I";
                }
                else
                {
                    paramTransactionType.Value = TransactionType;
                }

                SqlParameter paramIdFatherTask = new SqlParameter();
                paramIdFatherTask.ParameterName = "@IdFatherTask";
                paramIdFatherTask.SqlDbType     = System.Data.SqlDbType.Int;
                paramIdFatherTask.Direction     = System.Data.ParameterDirection.Input;
                paramIdFatherTask.IsNullable    = true;
                if (objTask.IdFatherTask != null)
                {
                    paramIdFatherTask.Value = objTask.IdFatherTask;
                }
                else
                {
                    paramIdFatherTask.Value = DBNull.Value;
                }

                SqlParameter paramPlace = new SqlParameter();
                paramPlace.ParameterName = "@strPlace";

                if (objTask.Place != null)
                {
                    paramPlace.Value = objTask.Place;
                }
                else
                {
                    paramPlace.Value = "";
                }

                if (objTask.DateEnd == null)
                {
                    objTask.DateEnd = DateTime.Today;
                }

                if (objTask.DateIni == null)
                {
                    objTask.DateIni = DateTime.Today;
                }


                if (objTask.HourEnd == null)
                {
                    objTask.HourEnd = TimeSpan.Zero;
                }


                if (objTask.HourIni == null)
                {
                    objTask.HourIni = TimeSpan.Zero;
                }

                SqlParameter IdResponsable = new SqlParameter();
                IdResponsable.ParameterName = "@IdResponsable";
                IdResponsable.SqlDbType     = System.Data.SqlDbType.Int;
                IdResponsable.Direction     = System.Data.ParameterDirection.Input;
                IdResponsable.IsNullable    = true;
                if (objTask.IdPersonEmployee != null)
                {
                    IdResponsable.Value = objTask.IdPersonEmployee;
                }
                else
                {
                    IdResponsable.Value = DBNull.Value;
                }

                if (objTask.IdUser == 0)
                {
                    objTask.IdUser = (int)objTask.IdCreatedBy;
                }

                bool blnAddComment     = false;
                bool blnEditComment    = false;
                bool blnModifiPriority = false;
                bool blnModistatus     = false;

                MTask objTaskAnt = null;

                if (objTask.IdTask > 0)
                {
                    objTaskAnt = fnListTask(objTask.IdTask, null, null, null, null, null, null, null, null, objTask.IdUser, null).First();


                    if (objTask.listMTaskComment != null)
                    {
                        if ((objTask.listMTaskComment.Where(z => z.Comment != null).ToList().Count() > 0 && objTaskAnt.listMTaskComment == null) || (objTask.listMTaskComment.Where(z => z.Comment != null).ToList().Count() > objTaskAnt.listMTaskComment.Count()))
                        {
                            blnAddComment = true;
                            activity      = "Se Agrego un comentario";
                        }

                        int ClisCount = 0;
                        if (objTask.listMTaskComment.Where(z => z.Comment != null).ToList().Count() > 0 && objTaskAnt.listMTaskComment.Where(z => z.Comment != null).ToList().Count() > 0)
                        {
                            var resultado = from TaskAnt in objTaskAnt.listMTaskComment
                                            join TaskN in objTask.listMTaskComment on
                                            TaskAnt.Comment equals TaskN.Comment
                                            select TaskAnt;
                            ClisCount = resultado.ToList().Count;

                            if (ClisCount != objTask.listMTaskComment.Where(z => z.Comment != null).ToList().Count())
                            {
                                blnEditComment = true;
                                if (activity != "")
                                {
                                    activity = activity + "-";
                                }

                                activity = activity + "Se Modifico un comentario";
                            }
                        }
                    }

                    if (objTaskAnt.IdPriority != objTask.IdPriority)
                    {
                        blnModifiPriority = true;
                        if (activity != "")
                        {
                            activity = activity + "-";
                        }

                        activity = activity + "Se Modifico la Prioridad";
                    }

                    if (objTaskAnt.IdStatus != objTask.IdStatus)
                    {
                        blnModistatus = true;
                        if (activity != "")
                        {
                            activity = activity + "-";
                        }

                        activity = activity + "Se Modifico el Estado";
                    }
                }

                MUser objUser = new MUser();


                SqlResultTask = db.Database.ExecuteSqlCommand("GNTranTask @TransactionType, @IdTask OUT, @IdUser " +
                                                              ", @dttDateIni, @dttDateEnd, @tHourIni, @tHourEnd, @strPlace " +
                                                              ", @IdFatherTask, @IdResponsable, @strTittle, @IdPriority, @IdStatus, @IdTypeTask,@strActivity,@blnConfidential,@IdCreatedBy ",
                                                              new SqlParameter[] {
                    new SqlParameter("@TransactionType", TransactionType),
                    paramOutIdTask,
                    new SqlParameter("@IdUser", objTask.IdUser),
                    new SqlParameter("@dttDateIni", objTask.DateIni),
                    new SqlParameter("@dttDateEnd", objTask.DateEnd),
                    new SqlParameter("@tHourIni", objTask.HourIni),
                    new SqlParameter("@tHourEnd", objTask.HourEnd),
                    paramPlace,
                    paramIdFatherTask,
                    IdResponsable,
                    new SqlParameter("@strTittle", objTask.Tittle),
                    new SqlParameter("@IdPriority", objTask.IdPriority),
                    new SqlParameter("@IdStatus", objTask.IdStatus),
                    new SqlParameter("@IdTypeTask", objTask.IdTypeTask),
                    new SqlParameter("@strActivity", objTask.Activity),
                    new SqlParameter("@blnConfidential", objTask.Confidential),
                    new SqlParameter("@IdCreatedBy", objTask.IdCreatedBy),
                }
                                                              );

                IdTask = Int32.Parse(paramOutIdTask.Value.ToString());



                if (IdTask != 0)
                {
                    strBody = strBody.Replace("[IdTicket]", IdTask.ToString());

                    if (objTask.listMTaskComment != null)
                    {
                        if (objTask.listMTaskComment.Count() > 0)
                        {
                            //Inserta los Comentarios
                            foreach (var item in objTask.listMTaskComment)
                            {
                                if (item.IdComment != null && item.Comment != null)
                                {
                                    if (item.Date == null)
                                    {
                                        item.Date = DateTime.Now;
                                    }

                                    if (item.IdUser == null)
                                    {
                                        item.IdUser = objTask.IdUser;
                                    }

                                    int          IdComment         = (int)item.IdComment;
                                    SqlParameter paramOutIdComment = new SqlParameter("@IdComment", System.Data.SqlDbType.Int);
                                    paramOutIdComment.Direction = System.Data.ParameterDirection.InputOutput;
                                    paramOutIdComment.Value     = IdComment;

                                    SqlResult = db.Database.ExecuteSqlCommand("GNTranCommentTask @TransactionType, @IdComment OUT, @IdTask " +
                                                                              ", @strComment,@IdUser, @dttDate ",
                                                                              new SqlParameter[] {
                                        new SqlParameter("@TransactionType", "I"),
                                        paramOutIdComment,
                                        new SqlParameter("@IdTask", IdTask),
                                        new SqlParameter("@strComment", item.Comment),
                                        new SqlParameter("@IdUser", item.IdUser),
                                        new SqlParameter("@dttDate", item.Date),
                                    }
                                                                              );
                                    IdComment      = Int32.Parse(paramOutIdComment.Value.ToString());
                                    item.IdComment = IdComment;
                                }
                            }
                        }
                    }

                    if (objTask.listTaskPerson != null)
                    {
                        if (objTask.listTaskPerson.Count() > 0)
                        {
                            //si va a actualizar, se eliminan los Comentarios de las actividades para volver a insertar
                            if (TransactionType == "U")
                            {
                                int IdPerson = 0;
                                SqlResult = db.Database.ExecuteSqlCommand("GNTranPersonTask @TransactionType, @IdTask, @IdPerson,@Iscolaborator ",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", "U"),
                                    new SqlParameter("@IdTask", IdTask),
                                    new SqlParameter("@IdPerson", IdPerson),
                                    new SqlParameter("@Iscolaborator", false)
                                }
                                                                          );
                            }

                            bool blnItemModifiPriority = blnModifiPriority;
                            bool blnItemModistatus     = blnModistatus;
                            //Inserta los Comentarios
                            foreach (var item in objTask.listTaskPerson)
                            {
                                SqlResult = db.Database.ExecuteSqlCommand("GNTranPersonTask @TransactionType, @IdTask, @IdPerson,@blnIsColaborator ",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", "I"),
                                    new SqlParameter("@IdTask", IdTask),
                                    new SqlParameter("@IdPerson", item.IdPersonEmployee),
                                    new SqlParameter("@blnIsColaborator", item.Iscolaborator)
                                }
                                                                          );

                                //// se envia correo segun los seguidores
                                ////Buscamos correo de Colaborador- seguidor para ver si tiene configurado
                                if (item.IdPersonEmployee != null)
                                {
                                    var objNoti = NotificationSettingsController.fnListMNotificationSettings(null, item.IdPersonEmployee);
                                    if (objNoti.Count > 0)
                                    {
                                        if (objNoti[0].Email != "")
                                        {
                                            if (blnModifiPriority == true)
                                            {
                                                var objPriot = objNoti.First().LisMNotificationSettingsPriority.Select(x => x.IdPriority == objTask.IdPriority).Count();
                                                if (objPriot == 0)
                                                {
                                                    blnItemModifiPriority = false;
                                                }
                                            }

                                            if (blnModistatus == true)
                                            {
                                                var objStatus = objNoti.First().LisNotificationSettingsStatus.Select(x => x.IdStatus == objTask.IdStatus).Count();
                                                if (objStatus == 0)
                                                {
                                                    blnItemModistatus = false;
                                                }
                                            }


                                            if (objNoti[0].SendColaborator || objNoti[0].SendFollower)
                                            {
                                                if (blnAddComment == true || blnEditComment == true || blnItemModifiPriority == true || blnItemModistatus == true || objTaskAnt == null)
                                                {
                                                    Utilities objutilities = new Utilities();
                                                    strSubject = strSubject.Replace("[NRO]", IdTask.ToString());
                                                    if (activity != "")
                                                    {
                                                        strSubject = strSubject + " - " + activity;
                                                    }
                                                    objutilities.SendMail(strfromaddress, objNoti[0].Email, strBody, strSubject, strPassword, strHost, Convert.ToInt32(strPuerto));
                                                }
                                            }
                                        }
                                    }
                                }

                                blnItemModifiPriority = blnModifiPriority;
                                blnItemModistatus     = blnModistatus;
                            }
                        }
                    }

                    if (objTask.IdServiceRequest != null)
                    {
                        //si va a actualizar, se eliminan los Comentarios de las actividades para volver a insertar
                        if (TransactionType == "U")
                        {
                            int IdTask0 = 0;
                            SqlResult = db.Database.ExecuteSqlCommand("GNTranServiceRequestTask @TransactionType, @IdTask, @IdServiceRequest ",
                                                                      new SqlParameter[] {
                                new SqlParameter("@TransactionType", TransactionType),                     //TransactionType
                                new SqlParameter("@IdTask", IdTask0),
                                new SqlParameter("@IdServiceRequest", objTask.IdServiceRequest)
                            }
                                                                      );
                        }

                        //Se asocia la actividad con el servicio si esta insertando
                        if (paramTransactionType.Value.ToString() == "I") //TransactionType == "I"
                        {
                            if (objTask.IdServiceRequest != null)
                            {
                                SqlResult = db.Database.ExecuteSqlCommand("GNTranServiceRequestTask @TransactionType, @IdTask, @IdServiceRequest ",
                                                                          new SqlParameter[] {
                                    new SqlParameter("@TransactionType", TransactionType),                    //TransactionType
                                    new SqlParameter("@IdTask", IdTask),
                                    new SqlParameter("@IdServiceRequest", objTask.IdServiceRequest)
                                }
                                                                          );
                            }
                        }
                    }

                    ////Buscamos correo de responsable para ver si tiene configurado
                    if (objTask.IdPersonEmployee != null)
                    {
                        var objNoti = NotificationSettingsController.fnListMNotificationSettings(null, (int)IdResponsable.Value);
                        if (objNoti.Count > 0)
                        {
                            if (objNoti[0].Email != "")
                            {
                                if (blnModifiPriority == true)
                                {
                                    var objPriot = objNoti.First().LisMNotificationSettingsPriority.Select(x => x.IdPriority == objTask.IdPriority).Count();
                                    if (objPriot == 0)
                                    {
                                        blnModifiPriority = false;
                                    }
                                }

                                if (blnModistatus == true)
                                {
                                    var objStatus = objNoti.First().LisNotificationSettingsStatus.Select(x => x.IdStatus == objTask.IdStatus).Count();
                                    if (objStatus == 0)
                                    {
                                        blnModistatus = false;
                                    }
                                }

                                if (objNoti[0].SendResponsable)
                                {
                                    if (blnAddComment == true || blnEditComment == true || blnModifiPriority == true || blnModistatus == true || objTaskAnt == null)
                                    {
                                        Utilities objutilities = new Utilities();



                                        strSubject = strSubject.Replace("[NRO]", IdTask.ToString());
                                        objutilities.SendMail(strfromaddress, objNoti[0].Email, strBody, strSubject, strPassword, strHost, Convert.ToInt32(strPuerto));
                                    }
                                }
                            }
                        }
                    }

                    //Mensaje = "Datos grabados exitosamente para el Código de empleado: (" + IdPerson + ").";
                    Mensaje = "Datos grabados exitosamente.";
                }
                else
                {
                    Mensaje = "No se pudo realizar la transaccion, intente nuevamente.";
                }

                return(SqlResultTask);
            }
            catch (SqlException ex)
            {
                Mensaje = "Error al grabar datos: " + ex.Message;
                return(0);
            }
        }
Ejemplo n.º 28
0
        public override void UpdateAfterSimulation()
        {
            try
            {
                if (Placer != null)
                {
                    UpdatePlacer();
                }
                if (!DedicatedServer)
                {
                    ProcessAnimations();
                }

                /*
                 * DsUtil.Start("projectiles");
                 * if (!DedicatedServer && false)
                 * {
                 *  if (!PTask.IsComplete)
                 *      PTask.Wait();
                 *
                 *  if (PTask.IsComplete && PTask.valid && PTask.Exceptions != null)
                 *      TaskHasErrors(ref PTask, "PTask");
                 * }
                 * else Projectiles.Update();
                 *
                 * DsUtil.Complete("projectiles", true);
                 */
                if (_effectedCubes.Count > 0)
                {
                    ApplyGridEffect();
                }

                if (Tick60)
                {
                    GridEffects();
                }

                if (GridTask.IsComplete)
                {
                    CheckDirtyGrids();
                }

                DsUtil.Start("damage");
                if (Hits.Count > 0)
                {
                    ProcessHits();
                }
                DsUtil.Complete("damage", true);

                if (IsClient)
                {
                    if (!MTask.IsComplete)
                    {
                        MTask.Wait();
                    }

                    if (MTask.IsComplete && MTask.valid && MTask.Exceptions != null)
                    {
                        TaskHasErrors(ref MTask, "MTask");
                    }
                }

                /*
                 * DsUtil.Start("network");
                 * if (!DedicatedServer)
                 * {
                 *  if (!NTask.IsComplete)
                 *      NTask.Wait();
                 *
                 *  if (NTask.IsComplete && NTask.valid && NTask.Exceptions != null)
                 *      TaskHasErrors(ref NTask, "NTask");
                 * }
                 * else if (WeaponsToSync.Count > 0) Proccessor.Proccess();
                 */

                DsUtil.Start("network2");
                Proccessor.AddPackets();

                if (MpActive && !HandlesInput)
                {
                    if (PacketsToClient.Count > 0)
                    {
                        ProccessServerPacketsForClients();
                    }
                    if (PacketsToServer.Count > 0)
                    {
                        ProccessClientPacketsForServer();
                    }
                }
                DsUtil.Complete("network2", true);
            }
            catch (Exception ex) { Log.Line($"Exception in SessionAfterSim: {ex}"); }
        }
Ejemplo n.º 29
0
        // GET: User/Edit/5int id
        public ActionResult EditTask(int?id)  //string id / MUser objMuser, string id / FormCollection collection
        {
            if (Session["Usuario"] == null)
            {
                return(RedirectToAction("Login", "User"));
            }

            var ObjAccesUser = ((MSerUser)Session["Usuario"]).UserAcces;
            var ObjAcces     = ObjAccesUser.Where(p => p.Action == "ListTask").First();

            if (ObjAcces != null)
            {
                if (ObjAcces.Edit == false)
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }

            //Aqui se trae el modelo enviado por POST desde la Lista, para que no se vea en la Url
            if (TempData["DataTask"] != null)
            {
                var objTempData = Newtonsoft.Json.JsonConvert.DeserializeObject <MTask>((string)TempData["DataTask"]);
                if (objTempData != null && objTempData.IdTask > 0)
                {
                    id = objTempData.IdTask;
                }
                else
                {
                    return(RedirectToAction("ListTask", "Task"));
                }
            }
            if (id == null)
            {
                return(RedirectToAction("ListTask", "Task"));
            }
            //-----------------------------------------------------

            MTask objMTask = new MTask();
            int?  IdUser   = ((MSerUser)Session["Usuario"]).IdUser;

            var ListT = fnListTask(id, null, null, null, null, null, null, null, null, IdUser);

            if (ListT.Count > 0)
            {
                objMTask = ListT.First();
            }
            else
            {
                return(RedirectToAction("ListTask", "Task"));
            }



            //MTaskComment mTaskComment = new MTaskComment();
            //objMTask.listMTaskComment.Add(mTaskComment);
            //objMTask.listMTaskComment.OrderByDescending(x => x.IdTask);


            if (TempData["Success"] != null)
            {
                ViewBag.SuccessSave = TempData["Success"];
            }

            return(View(objMTask));
        }
Ejemplo n.º 30
0
 public ActionResult <ObjectResult <MTask> > Post([FromBody] MTask model)
 {
     return(_taskService.Add(model));
 }