public TodoOperationResponse AddTodo(TodoTableDto todo)
        {
            TodoOperationResponse response = new TodoOperationResponse();
            var userEntity = _context.UserInfoTable.FirstOrDefault(x => x.VUserId.Equals(todo.VUserId) && x.BIsActive.Equals(true));

            if (userEntity != null && todo != null)
            {
                //Only Existing users will be able to add new tasks...
                TodoTable todoObj = _mapper.Map <TodoTable>(todo);
                _context.TodoTable.Add(todoObj);
                var res = _context.SaveChanges();

                if (res > 0)
                {
                    response = new TodoOperationResponse {
                        isSucceeed = true,
                        vMessage   = "New ToDo added successfully!."
                    };

                    return(response);
                }
            }
            //Only Existing users will be able to add new tasks...
            response = new TodoOperationResponse {
                isSucceeed = false,
                vMessage   = (userEntity == null) ? "Unregistered users will not be able to add new task!" : "Failed To add new task!."
            };

            return(response);
        }
        public TodoOperationResponse DoneTodo(UserTodoIdModel userTodoIdModel)
        {
            TodoOperationResponse response = new TodoOperationResponse();
            var entity = _context.TodoTable.FirstOrDefault(x => x.VTodoId.Equals(userTodoIdModel.VTodoId) && x.VUserId.Equals(userTodoIdModel.VUserId) && x.BIsDeleted.Equals(false));

            // Validate entity is not null
            if (entity != null)
            {
                // Make changes on entity
                entity.BIsDone = true;

                // Save changes in database
                var res = _context.SaveChanges();

                if (res > 0)
                {
                    response = new TodoOperationResponse {
                        isSucceeed = true,
                        vMessage   = "Task marked as done."
                    };
                    return(response);
                }
            }
            response = new TodoOperationResponse {
                isSucceeed = false,
                vMessage   = "Faild to mark the task as done."
            };
            return(response);
        }
        public TodoOperationResponse UpdateTodo(TodoTableDto todo)
        {
            TodoOperationResponse response = new TodoOperationResponse();

            TodoTable todoObj = _mapper.Map <TodoTable>(todo);
            var       entity  = _context.TodoTable.FirstOrDefault(x => x.VTodoId.Equals(todoObj.VTodoId) && x.VUserId.Equals(todoObj.VUserId) && x.BIsDeleted.Equals(false));

            // Validate entity is not null
            if (entity != null)
            {
                // Make changes on entity
                entity.VUserId          = todoObj.VUserId;
                entity.VTodoTitle       = todoObj.VTodoTitle;
                entity.VTodoDescription = todoObj.VTodoDescription;
                entity.DDate            = todoObj.DDate;
                entity.TTime            = todoObj.TTime;
                entity.VLocation        = todoObj.VLocation;
                entity.TNotifyTime      = todoObj.TNotifyTime;
                entity.VColorLabel      = todoObj.VColorLabel;
                entity.BIsDone          = todoObj.BIsDone;

                // Save changes in database
                var res = _context.SaveChanges();

                if (res > 0)
                {
                    response = new TodoOperationResponse {
                        isSucceeed = true,
                        vMessage   = "Task updated successfully..."
                    };
                    return(response);
                }
            }
            response = new TodoOperationResponse {
                isSucceeed = false,
                vMessage   = "Faild to update task..."
            };
            return(response);
        }