Example #1
0
        public bool CreateUser(RegisterViewModel model, string userId)
        {
            if (!string.IsNullOrEmpty(userId))
            {
                var entity = new Entity()
                {
                    UserId      = userId,
                    Name        = model.Name,
                    Company     = model.Company,
                    Address1    = model.Address1,
                    Address2    = model.Address2,
                    StateId     = model.StateId,
                    City        = model.City,
                    Zip         = model.Zip,
                    Fax         = model.Fax,
                    MobilePhone = model.MobilePhone,
                    OfficePhone = model.OfficePhone,
                    ContactedBy = model.ContactedBy
                };
                _context.Entities.Add(entity);
                _context.SaveChanges();

                return(true);
            }
            return(false);
        }
Example #2
0
        public Int64 SaveCorrespondence(CorrespondenceVM model, long RequestId)
        {
            var correspondence = new Correspondence()
            {
                CorrespondenceTypeId = model.CorrespondenceTypeId,
                RequestId            = RequestId,
                Body = model.Body,
                Date = DateTime.Now
            };

            _context.Correspondences.Add(correspondence);
            _context.SaveChanges();
            return(correspondence.CorrespondenceId);
        }
Example #3
0
        public bool SaveRequestAssignment(RequestVM model)
        {
            if (model.RequestId > 0)
            {
                var request = _context.Requests.Single(p => p.RequestId == model.RequestId);

                // If request already assign
                if (model.IsRequestAssignedAlready == true)
                {
                    var requestAssignment       = _context.RequestAssignments.Single(p => p.RequestId == model.RequestId);
                    var requestReviewerResponse = _context.RequestResponses.SingleOrDefault(p => p.RequestId == model.RequestId);

                    if (requestAssignment.IsAssignToArchitect)
                    {
                        if (requestAssignment.ArchitechStatus == Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired))
                        {
                            // Update Architect Response
                            if (requestReviewerResponse != null)
                            {
                                requestReviewerResponse.IsNoHistoricProperty = null;
                                requestReviewerResponse.IsHistoricProperty   = null;
                                //requestReviewerResponse.IsNoEffect = null;
                                //requestReviewerResponse.IsNoAdverseEffect = null;
                                //requestReviewerResponse.IsNoAdverseEffectWithCondition = null;

                                requestReviewerResponse.ArchitectResponse = null;
                                requestReviewerResponse.ArchitectComment  = null;
                                requestReviewerResponse.ArchitectUserId   = null;
                            }

                            // Update Architect Assignment Status
                            requestAssignment.ArchitechStatus = Convert.ToInt32(ReviewerRequestStatus.Pending);
                        }
                    }
                    if (requestAssignment.IsAssignToArchaelogical)
                    {
                        if (requestAssignment.ArchaelogicalStatus == Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired) || requestAssignment.ArchaelogicalStatus == Convert.ToInt32(ReviewerRequestStatus.SurveyRequired))
                        {
                            // Update Archaelogical Response
                            if (requestReviewerResponse != null)
                            {
                                requestReviewerResponse.ArchaelogicalResponse = null;
                                requestReviewerResponse.ArchaelogicalComment  = null;
                                requestReviewerResponse.ArchaelogicalUserId   = null;
                            }
                            // Update Archaelogical Assignment Status
                            requestAssignment.ArchaelogicalStatus = Convert.ToInt32(ReviewerRequestStatus.Pending);
                        }
                    }
                    if (requestAssignment.IsAssignToTechnical)
                    {
                        if (requestAssignment.TechnicalStatus == Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired))
                        {
                            // Update Technical Response
                            if (requestReviewerResponse != null)
                            {
                                requestReviewerResponse.TechnicalResponse = null;
                                requestReviewerResponse.TechnicalComment  = null;
                                requestReviewerResponse.TechnicalUserId   = null;
                            }

                            // Update Technical Assignment Status
                            requestAssignment.TechnicalStatus = Convert.ToInt32(ReviewerRequestStatus.Pending);
                        }
                    }
                    if (requestAssignment.IsAssignToLandMarks)
                    {
                        if (requestAssignment.LandMarksStatus == Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired))
                        {
                            // Update Technical Response
                            if (requestReviewerResponse != null)
                            {
                                requestReviewerResponse.LankMarksResponse = null;
                                requestReviewerResponse.LankMarksComment  = null;
                                requestReviewerResponse.LankMarksUserId   = null;
                            }

                            // Update Technical Assignment Status
                            requestAssignment.LandMarksStatus = Convert.ToInt32(ReviewerRequestStatus.Pending);
                        }
                    }
                    // Start internal clock on request re-assign
                    var clock = _context.Clocks.Single(p => p.RequestId == model.RequestId);
                    clock.InternalClockDate     = DateTime.Now.AddDays(Convert.ToInt32(clock.InternalRemainingDays));
                    clock.InternalClockStatus   = Convert.ToInt16(ClockStatus.Start);
                    clock.InternalRemainingDays = null;
                    _context.SaveChanges();

                    // Update Request Status to Assigned
                    request.Status = Convert.ToInt32(RequestStatus.Assigned);
                    _context.SaveChanges();
                    return(true);
                }
                else
                {
                    if (model.RequestAssignment.IsAccept)
                    {
                        var assignment = new RequestAssignment()
                        {
                            RequestId      = model.RequestId ?? 0,
                            FederalOrState = model.RequestAssignment.FederalOrState,
                            ProjectNumber  = model.RequestAssignment.ProjectNumber,
                            RespondDate    = model.RequestAssignment.RespondDate,

                            IsAssignToArchitect     = model.RequestAssignment.IsAssignToArchitect,
                            IsAssignToArchaelogical = model.RequestAssignment.IsAssignToArchaelogical,
                            IsAssignToTechnical     = model.RequestAssignment.IsAssignToTechnical,
                            IsAssignToLandMarks     = model.RequestAssignment.IsAssignToLandMarks,

                            ArchitechStatus     = model.RequestAssignment.IsAssignToArchitect ? Convert.ToInt32(ReviewerRequestStatus.Pending) : 0,
                            ArchaelogicalStatus = model.RequestAssignment.IsAssignToArchaelogical ? Convert.ToInt32(ReviewerRequestStatus.Pending) : 0,
                            TechnicalStatus     = model.RequestAssignment.IsAssignToTechnical ? Convert.ToInt32(ReviewerRequestStatus.Pending) : 0,
                            LandMarksStatus     = model.RequestAssignment.IsAssignToLandMarks ? Convert.ToInt32(ReviewerRequestStatus.Pending) : 0
                        };
                        _context.RequestAssignments.Add(assignment);
                        _context.SaveChanges();

                        // Update request status based on IsAccept
                        request.Status = Convert.ToInt32(RequestStatus.Assigned);

                        // Start internal clock
                        var clock = _context.Clocks.Single(p => p.RequestId == model.RequestId);
                        clock.InternalClockDate   = DateTime.Now.AddDays(15);
                        clock.InternalClockStatus = Convert.ToInt16(ClockStatus.Start);
                        _context.SaveChanges();
                    }
                    else
                    {
                        request.Status = Convert.ToInt32(RequestStatus.Returned);
                    }
                    _context.SaveChanges();
                    return(true);
                }
            }
            return(false);
        }
Example #4
0
        public bool SaveRequest(RequestVM model)
        {
            // Saving Applicant Contact Info
            bool isContactSame = model.IsApplicantSameAsSubmitting;
            long applicantId   = 0;

            if (!isContactSame)
            {
                var applicant = new Applicant()
                {
                    Name        = model.ApplicantContact.Name,
                    Company     = model.ApplicantContact.Company,
                    Email       = model.ApplicantContact.Email,
                    Address1    = model.ApplicantContact.Address1,
                    Address2    = model.ApplicantContact.Address2,
                    StateId     = model.ApplicantContact.StateId,
                    City        = model.ApplicantContact.City,
                    Zip         = model.ApplicantContact.Zip,
                    MobilePhone = model.ApplicantContact.MobileNumber != null ? model.ApplicantContact.MobileNumber : "",
                    OfficePhone = model.ApplicantContact.OfficeNumber,
                    Fax         = model.ApplicantContact.Fax,
                    CountyId    = model.ApplicantContact.CountyId
                };

                _context.Applicants.Add(applicant);
                _context.SaveChanges();
                applicantId = applicant.ApplicantId;
            }

            var randomProjectLogNumber = _commonRepository.GenerateRandomNumber();


            // Saving Request
            var request = new Request()
            {
                Status = model.Status,

                ApplicantContactId          = applicantId,
                IsApplicantSameAsSubmitting = model.IsApplicantSameAsSubmitting,
                UserId = model.UserId,

                Name        = model.ProjectName,
                Description = model.ProjectDescription,
                //LogNumber = model.IsNewSubmission ? randomProjectLogNumber : model.ProjectLogNumber,
                LogNumber   = randomProjectLogNumber,
                Date        = model.ProjectDate,
                Address1    = model.ProjectAddress1 == null ? "" : model.ProjectAddress1,
                Address2    = model.ProjectAddress2,
                CityId      = model.ProjectCityId == null ? 0 : (int)model.ProjectCityId,
                CountyId    = model.ProjectCountyId,
                Zip         = model.ProjectZip,
                LongitudeDD = model.Longitude,
                LatitudeDD  = model.Latitude,
                Township    = model.TownShip,
                Range       = model.Range,
                Section     = model.Section,

                IsFederalProperty   = model.IsFederalProperty,
                IsStateProperty     = model.IsStateProperty,
                IsMunicipalProperty = model.IsMunicipalProperty,
                IsPrivateProperty   = model.IsPrivateProperty,
                AgencyId            = model.AgencyId,
                AgencyProjectNumber = model.AgencyProjectNumber,

                IsConstructionExcavation = model.IsConstructionExcavation,
                IsRehabilitation         = model.IsRehabilitation,
                IsDemolition             = model.IsDemolition,
                IsSaleOrTransfer         = model.IsSaleOrTransfer,
                IsNonConstructionLoan    = model.IsNonConstructionLoan,
                IsOther                  = model.IsOther,
                OtherDescription         = model.IsOther ? model.OtherDescription : null,
                TotalProjectArea         = model.TotalProjectArea,
                TotalGroundDisturbance   = model.TotalGroundDisturbance,
                IsOldStructure           = model.IsOldStructure,
                IsHistoricOrGovtProperty = model.IsHistoricOrGovtProperty,
                HistoricPropertyName     = model.HistoricPropertyName,
                IsMississippiLandmarks   = model.IsMississippiLandmarks,
                IsDocumentSentViaEmail   = model.IsDocumentSentViaEmail
            };

            _context.Requests.Add(request);
            _context.SaveChanges();


            //Saving attachments
            if (model.AttachmentList != null)
            {
                var attachments = model.AttachmentList.Split(';');
                if (attachments.Length > 0)
                {
                    foreach (var file in attachments)
                    {
                        var    fileArr     = file.Split(',');
                        byte[] fileBytes   = Convert.FromBase64String(fileArr[0]);
                        var    fileName    = fileArr[1];
                        var    fileType    = fileArr[2];
                        var    fileComment = fileArr[3];

                        //Save File to folder
                        string folderPath = HttpContext.Current.Server.MapPath("~/Attachments");
                        if (!Directory.Exists(folderPath))
                        {
                            //If Directory (Folder) does not exists. Create it.
                            Directory.CreateDirectory(folderPath);
                        }

                        string imgPath = Path.Combine(folderPath, request.RequestId + "_" + fileName);
                        File.WriteAllBytes(imgPath, fileBytes);


                        var attachment = new Attachment()
                        {
                            Name      = fileName,
                            Type      = fileType,
                            Comments  = fileComment,
                            RequestId = request.RequestId
                        };

                        _context.Attachments.Add(attachment);
                        _context.SaveChanges();
                    }
                }
            }

            if (model.Status == Convert.ToInt32(RequestStatus.Submitted))
            {
                // Saving clock information
                var clock = new Clock()
                {
                    RequestId   = request.RequestId,
                    ClockDate   = DateTime.Now.AddDays(30),
                    ClockStatus = (Int16)(ClockStatus.Start)
                };
                _context.Clocks.Add(clock);
                _context.SaveChanges();
            }


            return(true);
        }
        private bool SaveArchitecturalResponse(RequestVM model, bool?IsReqAddInfo, string userId)
        {
            var responseDb = _context.RequestResponses.SingleOrDefault(p => p.RequestId == model.RequestId && p.RequestAssignmentId == model.RequestAssignment.RequestAssignmentId);

            if (responseDb != null)
            {
                if (IsReqAddInfo == true)
                {
                    responseDb.ArchitectResponse = Convert.ToInt16(ReviewerResponse.RequestAdditionalInformation);
                }
                else
                {
                    responseDb.ArchitectResponse = Convert.ToInt16(ReviewerResponse.Eligible); // if request more information checkbox is not checked that means approved for now
                }

                responseDb.IsNoHistoricProperty = model.RequestResponse.IsNoHistoricProperty;
                responseDb.IsHistoricProperty   = model.RequestResponse.IsHistoricProperty;
                //responseDb.IsNoEffect = model.RequestResponse.IsNoEffect;
                //responseDb.IsNoAdverseEffect = model.RequestResponse.IsNoAdverseEffect;
                //responseDb.IsNoAdverseEffectWithCondition = model.RequestResponse.IsNoAdverseEffectWithCondition;
                responseDb.ArchitectComment              = model.RequestResponse.ArchitectComment;
                responseDb.ArchitectUserId               = userId;
                responseDb.ArchitectUnknownProperties    = model.RequestResponse.UnknownProperties;
                responseDb.ArchitectEligibleProperties   = model.RequestResponse.EligibleProperties;
                responseDb.ArchitectInEligibleProperties = model.RequestResponse.InEligibleProperties;
                //responseDb.
                _context.SaveChanges();
            }
            else
            {
                var response = new RequestResponse()
                {
                    RequestId           = model.RequestId ?? 0,
                    RequestAssignmentId = model.RequestAssignment.RequestAssignmentId ?? 0,

                    IsHistoricProperty   = model.RequestResponse.IsHistoricProperty,
                    IsNoHistoricProperty = model.RequestResponse.IsNoHistoricProperty,
                    //IsNoEffect = model.RequestResponse.IsNoEffect,
                    //IsNoAdverseEffect = model.RequestResponse.IsNoAdverseEffect,
                    //IsNoAdverseEffectWithCondition = model.RequestResponse.IsNoAdverseEffectWithCondition,

                    ArchitectResponse = IsReqAddInfo == true?Convert.ToInt16(ReviewerResponse.RequestAdditionalInformation) : Convert.ToInt16(ReviewerResponse.Eligible),
                                            ArchitectComment              = model.RequestResponse.ArchitectComment,
                                            ArchitectUserId               = userId,
                                            ArchitectEligibleProperties   = model.RequestResponse.EligibleProperties,
                                            ArchitectInEligibleProperties = model.RequestResponse.InEligibleProperties,
                                            ArchitectUnknownProperties    = model.RequestResponse.UnknownProperties
                };
                _context.RequestResponses.Add(response);
                _context.SaveChanges();
            }

            var requestAssignment = _context.RequestAssignments.Single(p => p.RequestAssignmentId == model.RequestAssignment.RequestAssignmentId);

            if (model.RequestResponse.ResponseType == ReviewerResponseType.SaveAndSubmit)
            {
                //if (model.RequestResponse.ArchitectResponse == Convert.ToInt16(ReviewerResponse.Eligible))
                //{
                //    requestAssignment.ArchitechStatus = Convert.ToInt32(ReviewerRequestStatus.Approved);
                //}
                //else if (model.RequestResponse.ArchitectResponse == Convert.ToInt16(ReviewerResponse.NotEligible))
                //{
                //    requestAssignment.ArchitechStatus = Convert.ToInt32(ReviewerRequestStatus.Rejected);
                //}
                if (IsReqAddInfo == true)
                {
                    requestAssignment.ArchitechStatus = Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired);
                }
                else
                {
                    requestAssignment.ArchitechStatus = Convert.ToInt32(ReviewerRequestStatus.Approved); // Approved for now if reviewer does not need more information.
                }

                if (model.RequestResponse.ArchitectResponse == Convert.ToInt16(ReviewerResponse.RequestAdditionalInformation))
                {
                    requestAssignment.ArchitechStatus = Convert.ToInt32(ReviewerRequestStatus.MoreInfoRequired);
                    // Stop internal clock in case of reviewer need more information
                    var internalClock = _context.Clocks.Single(p => p.RequestId == model.RequestId);
                    internalClock.InternalClockStatus = Convert.ToInt16(ClockStatus.Stop);
                    var internalRemainingDays = internalClock.InternalClockDate.Value.Date.Subtract(DateTime.Now.Date).TotalDays;
                    internalClock.InternalRemainingDays = Convert.ToInt32(internalRemainingDays);
                    _context.SaveChanges();
                }
            }
            _context.SaveChanges();
            return(true);
        }