private Response EditQuestionNote(Inspection inspection, List<Question> questions)
        {
            Response response = new Response();

            if (inspection.ModifiedTime == null)
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection modification time data.";
                isInvalidData = true;
            }

            if (String.IsNullOrEmpty(inspection.UUID))
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection UUID";
                isInvalidData = true;
            }

            if(!isInvalidData)
            {
                foreach (Question question in questions)
                {
                    if (question.ModifiedTime == null)
                    {
                        response.Result = QueryResult.Fail;
                        response.Message = "Invalid question modification time data.";
                        isInvalidData = true;
                        break;
                    }
                    if (question.Id == 0)
                    {
                        response.Result = QueryResult.Fail;
                        response.Message = "Invalid question id";
                        isInvalidData = true;
                    }

                    if (isInvalidData)
                    {
                        break;
                    }

                    foreach (Note note in question.EditedNotes)
                    {
                        if (isInvalidData)
                        {
                            break;
                        }

                        if (String.IsNullOrEmpty(note.UUID))
                        {
                            response.Result = QueryResult.Fail;
                            response.Message = "Invalid note UUID";
                            isInvalidData = true;
                        }
                        if (note.OrderNumber == 0)
                        {
                            response.Result = QueryResult.Fail;
                            response.Message = "Invalid note order number";
                            isInvalidData = true;
                        }

                        bool result = dal.ModifyNote(note.UUID, (int)note.Type, note.Content, note.Name, userId, question.ModifiedTime, note.OrderNumber);
                        switch (result)
                        {
                            case true:
                                response.Result = QueryResult.Success;
                                break;
                            case false:
                                response.Result = QueryResult.Fail;
                                response.Message = "Cannot edit note.";
                                isInvalidData = true;
                                break;
                        }
                    }
                    if (response.Result != QueryResult.Fail)
                    {
                        response = EditQuestionModificationTime(inspection, question);
                        if (response.Result == QueryResult.Fail)
                        {
                            //TODO rollback
                        }
                    }
                }
            }
            return response;
        }
        private Response EditQuestion(Inspection inspection, List<Question> questions)
        {
            Response response = new Response();
            response.Result = QueryResult.Fail;

            if (inspection.ModifiedTime == null)
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection modification time data.";
                isInvalidData = true;
            }

            if (String.IsNullOrEmpty(inspection.UUID))
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection UUID";
                isInvalidData = true;
            }

            if(!isInvalidData)
            {
                foreach (Question question in questions)
                {
                    if (question.ModifiedTime == null)
                    {
                        response.Result = QueryResult.Fail;
                        response.Message = "Invalid question modification time data.";
                        isInvalidData = true;
                        break;
                    }
                    if (question.Id == 0)
                    {
                        response.Result = QueryResult.Fail;
                        response.Message = "Invalid question id";
                        isInvalidData = true;
                    }
                    if (isInvalidData == true)
                    {
                        break;
                    }

                    bool result = dal.SetQuestionPositiveNegativePercent(inspection.UUID, question.Id, question.PositivePercent, question.NegativePercent, userId, question.ModifiedTime);
                    switch (result)
                    {
                        case true:
                            response = EditQuestionModificationTime(inspection, question);
                            if(response.Result == QueryResult.Fail)
                            {
                                //TODO rollback
                            }
                            break;
                        case false:
                            response.Result = QueryResult.Fail;
                            response.Message = "Cannot edit question safeness.";
                            isInvalidData = true;
                            break;
                    }
                }
            }

            return response;
        }
        private Response EditQuestionModificationTime(Inspection inspection, Question question)
        {
            Response response = new Response();

            bool result = dal.SetQuestionModificationTime(inspection.UUID, question.Id, question.ModifiedTime, userId);
            switch (result)
            {
                case true:
                    response = EditInspectionModificationTime(inspection);
                    if(response.Result == QueryResult.Fail)
                    {
                        //TODO rollback
                    }
                    break;
                case false:
                    response.Result = QueryResult.Fail;
                    response.Message = "Cannot edit question modification time.";
                    isInvalidData = true;
                    break;
            }

            return response;
        }
        private Response EditInspection(Inspection inspection)
        {
            Response response = new Response();
            response.Result = QueryResult.Fail;
            bool result = false;

            if (inspection.ModifiedTime == null)
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection modification time data.";
                isInvalidData = true;
            }
            if (String.IsNullOrEmpty(inspection.UUID))
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection UUID";
                isInvalidData = true;
            }

            #region EditSafeness
            if (isInvalidData != true)
            {
                result = dal.SetInspectionPositiveNegativePercent(inspection.UUID, inspection.PositivePercent, inspection.NegativePercent);
                switch (result)
                {
                    case true:
                        response.Result = QueryResult.Success;
                        break;
                    case false:
                        response.Result = QueryResult.Fail;
                        response.Message = "Cannot edit inspection safeness.";
                        isInvalidData = true;
                        //TODO rollback
                        break;
                }
            }
            #endregion

            #region EditName
            if (isInvalidData != true && String.IsNullOrEmpty(inspection.Name) != true)
            {
                result = dal.SetInspectionName(inspection.UUID, inspection.Name);
                switch (result)
                {
                    case true:
                        response.Result = QueryResult.Success;
                        break;
                    case false:
                        response.Result = QueryResult.Fail;
                        response.Message = "Cannot edit inspection name.";
                        isInvalidData = true;
                        //TODO rollback
                        break;
                }
            }
            #endregion

            if(response.Result != QueryResult.Fail)
            {
                response = EditInspectionModificationTime(inspection);
                if (response.Result == QueryResult.Fail)
                {
                    //TODO rollback
                }
            }
            return response;
        }
        private Response EditInspectionModificationTime(Inspection inspection)
        {
            Response response = new Response();

            bool result = false;
            result = dal.SetInspectionModificationTime(inspection.UUID, userId, inspection.ModifiedTime);
            switch (result)
            {
                case true:
                    response.Result = QueryResult.Success;
                    break;
                case false:
                    response.Result = QueryResult.Fail;
                    response.Message = "Cannot edit inspection modification time.";
                    isInvalidData = true;
                    break;
            }

            return response;
        }
        private Response DeleteInspectionNote(Inspection inspection, List<Note> notes)
        {
            Response response = new Response();

            if (inspection.ModifiedTime == null)
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection modification time data.";
                isInvalidData = true;
            }
            if (String.IsNullOrEmpty(inspection.UUID))
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection UUID";
                isInvalidData = true;
            }

            if (!isInvalidData)
            {
                foreach (Note note in notes)
                {
                    if (String.IsNullOrEmpty(note.UUID))
                    {
                        response.Result = QueryResult.Fail;
                        response.Message = "Invalid note UUID";
                        isInvalidData = true;
                    }

                    if (isInvalidData)
                    {
                        break;
                    }

                    bool result = dal.DeleteNote(0, note.UUID);
                    switch (result)
                    {
                        case true:
                            response.Result = QueryResult.Success;
                            break;
                        case false:
                            response.Result = QueryResult.Fail;
                            response.Message = "Cannot delete note.";
                            isInvalidData = true;
                            break;
                    }
                }
                if (response.Result != QueryResult.Fail)
                {
                    response = EditInspectionModificationTime(inspection);
                    if (response.Result == QueryResult.Fail)
                    {
                        //TODO rollback
                    }
                }
            }
            return response;
        }
        private Response AddNoteToQuestion(Inspection inspection, List<Question> questions)
        {
            Response response = new Response();
            response.Result = QueryResult.Fail;
            bool result = false;

            if (inspection.ModifiedTime == null)
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection modification time data.";
                isInvalidData = true;
            }

            if (String.IsNullOrEmpty(inspection.UUID))
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection UUID";
                isInvalidData = true;
            }

            if (!isInvalidData)
            {
                foreach (Question question in questions)
                {
                    if (question.ModifiedTime == null)
                    {
                        response.Result = QueryResult.Fail;
                        response.Message = "Invalid question modification time data.";
                        isInvalidData = true;
                        break;
                    }
                    if (question.Id == 0)
                    {
                        response.Result = QueryResult.Fail;
                        response.Message = "Invalid question id";
                        isInvalidData = true;
                    }
                    if (isInvalidData == true)
                    {
                        break;
                    }

                    foreach (Note note in question.AddedNotes)
                    {
                        if (isInvalidData == true)
                        {
                            break;
                        }

                        if (String.IsNullOrEmpty(note.UUID) != true && Enum.IsDefined(typeof(NoteType), note.Type) != false && String.IsNullOrEmpty(note.Content) != true && note.OrderNumber != 0)
                        {
                            result = dal.AddNoteToQuestion(inspection.UUID, note.UUID, question.Id, (int)note.Type, note.Content, note.Name, note.OrderNumber, userId, question.ModifiedTime);
                            if (result)
                            {
                                response.Result = QueryResult.Success;
                                result = false;
                            }
                            else
                            {
                                response.Result = QueryResult.Fail;
                                response.Message = "Cannot create note.";
                                isInvalidData = true;
                            }
                        }
                        else
                        {
                            response.Result = QueryResult.Fail;
                            response.Message = "Invalid note data";
                            isInvalidData = true;
                        }

                        if(response.Result != QueryResult.Fail)
                        {
                            response = EditQuestionModificationTime(inspection, question);
                            if (response.Result == QueryResult.Fail)
                            {
                                break;
                                //TODO rollback
                            }
                        }
                    }
                }
            }

            return response;
        }
        private Response AddNewInspection(Inspection inspection)
        {
            Response response = new Response();
            response.Result = QueryResult.Fail;
            bool result = false;

            if (Enum.IsDefined(typeof(InspectionType), inspection.Type) == false || String.IsNullOrEmpty(inspection.UUID) == true ||
                String.IsNullOrEmpty(inspection.Name) == true ||
                String.IsNullOrEmpty(inspection.LocationWhenCreated) == true ||
                inspection.CreatedTime == null || inspection.ModifiedTime == null)
            {
                response.Result = QueryResult.Fail;
                response.Message = "Invalid inspection data";
                isInvalidData = true;
            }
            if(!isInvalidData)
            {
                result = dal.CreateInspection(inspection.UUID, (int)inspection.Type, inspection.Name, userId,
                                            inspection.PositivePercent, inspection.NegativePercent, inspection.LocationWhenCreated, inspection.CreatedTime, inspection.ModifiedTime);
                if (result)
                {
                    response.Result = QueryResult.Success;
                }
                else
                {
                    response.Result = QueryResult.Fail;
                    response.Message = "Cannot create inspection.";
                    isInvalidData = true;
                }
            }

            return response;
        }
        public static void Initialize()
        {
            if (!isInitialized)
            {
                #region Inspection
                isInitialized = true;
                Inspection inspection_1 = new Inspection
                {
                    CreatedTime = DateTime.Now,
                    Type = InspectionType.ProjectInspection,
                    IsSafe = IsSafe.NotComplited,
                    LocationWhenCreated = "some location",
                    ModifiedTime = DateTime.Now,
                    Name = "Inspection 1 for ProjectInspection",
                    Id = 1
                };
                Inspection inspection_2 = new Inspection
                {
                    CreatedTime = DateTime.Now,
                    Type = InspectionType.SubcontractorInspection,
                    IsSafe = IsSafe.NotComplited,
                    LocationWhenCreated = "some location",
                    ModifiedTime = DateTime.Now,
                    Name = "Inspection 1 for SubcontractorInspection",
                    Id = 2
                };
                inspections.Add(inspection_1);
                inspections.Add(inspection_2);
                #endregion

                #region Category
                categories.Add(new Category { Id = 1, Name = "Administration" });
                categories.Add(new Category { Id = 2, Name = "Asbestos" });
                categories.Add(new Category { Id = 3, Name = "Confined Space" });
                categories.Add(new Category { Id = 4, Name = "Control of Hazardous Energy" });
                categories.Add(new Category { Id = 5, Name = "Demolition" });
                categories.Add(new Category { Id = 6, Name = "Electrical Safety" });
                categories.Add(new Category { Id = 7, Name = "Environmental" });
                #endregion

                #region Note
                List<string> noteContents = new List<string>();
                noteContents.Add("question note_1");
                noteContents.Add("question note_2");
                noteContents.Add("question note_3");
                noteContents.Add("question note_4");
                noteContents.Add("inspection note_1");
                noteContents.Add("inspection note_2");
                noteContents.Add("ToDelete");
                int count = 1;
                foreach (string content in noteContents)
                {
                    Note note = new Note
                    {
                        Id = count,
                        Content = content,
                        Type = NoteType.Text
                    };
                    notes.Add(note);
                    count++;
                }

                questionNote.Add(1, 1);
                questionNote.Add(2, 1);
                questionNote.Add(3, 2);
                questionNote.Add(4, 3);

                inspectionNote.Add(5, 1);
                inspectionNote.Add(6, 1);
                #endregion

                #region Question
                List<string> questionNames = new List<string>();
                questionNames.Add("Accountability Plan Utilized");
                questionNames.Add("Address Displayed On Perimeter");
                questionNames.Add("Adequate 1st Aid Kits");
                questionNames.Add("Adequate Eyewash Stations");
                questionNames.Add("Annual Program Evaluation");
                questionNames.Add("Competent Persons List");
                questionNames.Add("Coord With Local FD");
                questionNames.Add("CSAP Enrollment Complete");
                int counter = 1;
                foreach (string name in questionNames)
                {
                    Question question = new Question
                    {
                        Id = count,
                        CreatedTime = DateTime.Now,
                        IsSafe = IsSafe.NotComplited,
                        ModifiedTime = DateTime.Now,
                        Text = name,
                        NotesCounter = questionNote.Where(n => n.Value == counter).Count()
                    };
                    questions.Add(question);
                    counter++;
                }
                #endregion

            }
        }
Exemplo n.º 10
0
        public ComplexObjects.Inspection GetInspection(string inspectionUUID)
        {
            CSInspectionDatabaseModel.Inspection inspectionFromDBModel = context.Inspections.Where(i => i.UUID == inspectionUUID).Select(i => i).FirstOrDefault();

            ComplexObjects.Inspection inspection = new ComplexObjects.Inspection();
            inspection.UUID = inspectionFromDBModel.UUID;
            inspection.Name = inspectionFromDBModel.Name;
            inspection.Type = (InspectionType)inspectionFromDBModel.Type;
            inspection.PositivePercent = inspectionFromDBModel.PositivePercent;
            inspection.NegativePercent = inspectionFromDBModel.NegativePercent;
            inspection.CreatedTime = inspectionFromDBModel.CreatedTime;
            inspection.ModifiedTime = inspectionFromDBModel.ModifiedTime;
            inspection.LocationWhenCreated = inspectionFromDBModel.LocationWhenCreated;

            return inspection;
        }