Beispiel #1
0
        /// <summary>
        ///     Creates or Updates task </summary>
        /// <param name="taskDto">task DTO</param>
        /// <param name="userDto">user who updates the task</param>
        public void SaveTask(Task1Dto taskDto, UserDto userDto)
        {
            var rep   = UnitOfWork.GetRepository <Task1>();
            var model = rep.GetById(taskDto.EntityId);

            if (model == null)
            {
                taskDto.CompanyId = userDto.CompanyId;
                taskDto.Index     = (rep.SearchFor(e => e.CompanyId == userDto.CompanyId).Max(e => (int?)e.Index) ?? 0) + 1;
                model             = this.Mapper.Map <Task1>(taskDto);
                rep.Insert(model, userDto.Id);
            }
            else
            {
                taskDto.CompanyId = userDto.CompanyId;
                this.Mapper.Map(taskDto, model);
                rep.Update(model, userDto.Id);
            }
            this.UnitOfWork.SaveChanges();

            this.SaveTaskUsers(taskDto, userDto);

            this.CalculateTaskValues(model.EntityId, userDto);

            this.SetLastModifiedTaskId(taskDto.EntityId, userDto);
        }
Beispiel #2
0
        /// <summary>
        ///     Synchronizes responsibles </summary>
        /// <param name="taskDto">task DTO</param>
        /// <param name="userDto">user who updates the task</param>
        private void SaveTaskUsers(Task1Dto taskDto, UserDto userDto)
        {
            var rep    = UnitOfWork.GetRepository <TaskUser>();
            var models = rep.SearchFor(e => e.TaskId == taskDto.EntityId).ToList();

            foreach (var model in models)
            {
                if (!taskDto.UserIds.Contains(model.UserId))
                {
                    rep.DeleteById(model.EntityId);
                }
            }
            foreach (var userId in taskDto.UserIds)
            {
                if (models.Any(e => e.UserId == userId) == false)
                {
                    rep.Insert(new TaskUser()
                    {
                        TaskId = taskDto.EntityId, UserId = userId
                    }, userDto.Id);
                }
            }
            this.UnitOfWork.SaveChanges();

            this.SetTaskFavorite(taskDto.Favorite, taskDto.EntityId, userDto);
        }
        public async Task <WebApiResult> SaveTask(Task1Dto task)
        {
            try {
#if DEBUG
                await Task.Delay(300);
#endif
                return(await Task.Factory.StartNew(() => {
                    this._service.SaveTask(task, GetUserDto());
                    return WebApiResult.Succeed(new { EntityId = task.EntityId });
                }));
            } catch (Exception e) {
                Logger.e("SaveTask", e);
                return(WebApiResult.Failed(e.Message));
            }
        }