Ejemplo n.º 1
0
        /// <summary>Save DAR for Jump Start
        /// <CreatedFor>For Insert Jump Start and GT Tracker</CreatedFor>
        /// <CreatedBy>Bhushan Dod</CreatedBy>
        /// <CreatedOn>March-16-2015</CreatedOn>
        /// </summary>
        /// <param name="objServiceDARModel"></param>
        /// <returns></returns>
        public ServiceDARModel SaveDARDetailsForTracking(ServiceDARModel obj)
        {
            ObjUserRepository = new UserRepository();
            objDARRepository  = new DARRepository();
            try
            {
                if (obj.LocationId > 0 && obj.ServiceAuthKey != null)
                {
                    var authuser = ObjUserRepository.GetSingleOrDefault(x => x.ServiceAuthKey == obj.ServiceAuthKey && x.IsDeleted == false);

                    if (authuser != null && authuser.UserId > 0)
                    {
                        //THIS SECTION FOR ACCEPTING THE FACILITY REQUEST
                        if (obj.FacilityRequest == true)
                        {
                            objWorkRequestAssignmentRepository = new WorkRequestAssignmentRepository();
                            objWork = new WorkRequestAssignmentModel();

                            var workDetails = objWorkRequestAssignmentRepository.GetSingleOrDefault(t => t.WorkRequestAssignmentID == obj.WorkAssignmentID && t.LocationID == obj.LocationId && t.IsDeleted == false);
                            if (workDetails != null && (workDetails.AssignToUserId == null || workDetails.AssignToUserId == 0) && workDetails.StartTime == null)
                            {
                                workDetails.AssignToUserId    = obj.UserId;
                                workDetails.AssignByUserId    = obj.UserId;
                                workDetails.StartTime         = DateTime.UtcNow;
                                workDetails.ModifiedBy        = obj.UserId;
                                workDetails.ModifiedDate      = DateTime.UtcNow;
                                workDetails.WorkRequestStatus = 15;
                                objWorkRequestAssignmentRepository.SaveChanges();
                                obj.ActivityDetails = DarMessage.FacilityRequestAccept(obj.UserName, obj.LocationName);
                                obj.StartTime       = DateTime.UtcNow.ToString();

                                var result = objDARRepository.InsertDARDetailsForTracking(obj);
                                if (result != null && result > 0)
                                {
                                    // obj = null;
                                    obj.Response        = Convert.ToInt32(ServiceResponse.SuccessResponse, CultureInfo.CurrentCulture);
                                    obj.DARId           = result;
                                    obj.ResponseMessage = CommonMessage.SaveSuccessMessage();
                                }
                                else
                                {
                                    obj.Response        = Convert.ToInt32(ServiceResponse.ExeptionResponse, CultureInfo.CurrentCulture);
                                    obj.DARId           = result;
                                    obj.ResponseMessage = CommonMessage.WrongParameterMessage();
                                }
                            }
                            else
                            {
                                obj.Response        = Convert.ToInt32(ServiceResponse.NoRecord, CultureInfo.CurrentCulture);
                                obj.ResponseMessage = CommonMessage.AlreadyAcceptedFacilityRequest();
                            }
                        }
                        //THIS SECTION FOR DAR ENTRY FOR CUSTOMER CALL
                        if (obj.FacilityRequest == false && obj.StartTime != null && obj.EndTime != null && obj.TaskType == (long)DARTASKTYPECATEGORY.CustomerCall)
                        {
                            if (obj.StartTime != null)
                            {
                                obj.StartTime = DateTime.UtcNow.ToString();
                            }
                            if (obj.EndTime != null)
                            {
                                obj.EndTime = DateTime.UtcNow.ToString();
                            }
                            obj.ActivityDetails = DarMessage.DarCustomerCall(obj.UserName, obj.LocationName, obj.Description);
                            var result = objDARRepository.InsertDARDetailsForTracking(obj);
                            if (result != null && result > 0)
                            {
                                // obj = null;
                                obj.Response        = Convert.ToInt32(ServiceResponse.SuccessResponse, CultureInfo.CurrentCulture);
                                obj.DARId           = result;
                                obj.ResponseMessage = CommonMessage.SaveSuccessMessage();
                            }
                            else
                            {
                                obj.Response        = Convert.ToInt32(ServiceResponse.ExeptionResponse, CultureInfo.CurrentCulture);
                                obj.DARId           = result;
                                obj.ResponseMessage = CommonMessage.WrongParameterMessage();
                            }
                        }
                        //THIS SECTION FOR DAR ENTRY JUMP START AND END TIME
                        if (obj.FacilityRequest == false && obj.StartTime != null && obj.TaskType == (long)DARTASKTYPECATEGORY.DARType)
                        {
                            if (obj.StartTime != null)
                            {
                                obj.StartTime = DateTime.UtcNow.ToString();
                            }

                            obj.ActivityDetails = DarMessage.DarJumpStartEndTimeStatus(obj.UserName, obj.LocationName, obj.Description);
                            var result = objDARRepository.InsertDARDetailsForTracking(obj);
                            if (result != null && result > 0)
                            {
                                // obj = null;
                                obj.Response        = Convert.ToInt32(ServiceResponse.SuccessResponse, CultureInfo.CurrentCulture);
                                obj.DARId           = result;
                                obj.ResponseMessage = CommonMessage.SaveSuccessMessage();
                            }
                            else
                            {
                                obj.Response        = Convert.ToInt32(ServiceResponse.ExeptionResponse, CultureInfo.CurrentCulture);
                                obj.DARId           = result;
                                obj.ResponseMessage = CommonMessage.WrongParameterMessage();
                            }
                        }
                        //THIS SECTION FOR DAR ENTRY FOR 18 TO 33 CODE
                        if (obj.FacilityRequest == false && obj.StartTime != null && obj.TaskType == (int)DARTASKTYPECATEGORY.GateRepair ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.CustomerVehicleLocate ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.CustomerJumpStart ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.Customertireinflation ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.CustomerAssistance ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.WorkBreak ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.SpecialProject ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.RoutineChecks ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.SpaceCount ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.LicensePlateInventory ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.Emergency ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.Facilitycleaning ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.FacilitySpillResponse ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.SnowRemoval ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.TicketSpitterRepair ||
                            obj.TaskType == (int)DARTASKTYPECATEGORY.MiscellaneousEvent)
                        {
                            if (obj.StartTime != null)
                            {
                                obj.StartTime = DateTime.UtcNow.ToString();
                            }

                            //obj.ActivityDetails = DarMessage.DarJumpStartEndTimeStatus(obj.UserName, obj.LocationName, obj.Description);
                            var result = objDARRepository.InsertDARDetailsForTracking(obj);
                            if (result != null && result > 0)
                            {
                                // obj = null;
                                obj.Response        = Convert.ToInt32(ServiceResponse.SuccessResponse, CultureInfo.CurrentCulture);
                                obj.DARId           = result;
                                obj.ResponseMessage = CommonMessage.SaveSuccessMessage();
                            }
                            else
                            {
                                obj.Response        = Convert.ToInt32(ServiceResponse.ExeptionResponse, CultureInfo.CurrentCulture);
                                obj.DARId           = result;
                                obj.ResponseMessage = CommonMessage.WrongParameterMessage();
                            }
                        }
                        //THIS SECTION FOR EMPLOYEE STARTED CR FOR THE DAY AND IF STARTDATE = workDetails.StartDate then update WorkRequestStatus
                        if (obj.FacilityRequest == false && obj.StartTime != null && obj.EndTime == null && obj.TaskType == (long)DARTASKTYPECATEGORY.ContinuousRequestEnd)
                        {
                            if (obj.StartTime != null)
                            {
                                obj.StartTime = DateTime.UtcNow.ToString();
                            }

                            objWorkRequestAssignmentRepository = new WorkRequestAssignmentRepository();
                            objWork = new WorkRequestAssignmentModel();

                            var workDetails = objWorkRequestAssignmentRepository.GetSingleOrDefault(t => t.WorkRequestAssignmentID == obj.WorkAssignmentID && t.LocationID == obj.LocationId && t.IsDeleted == false);

                            if (workDetails != null && workDetails.StartDate != null)
                            {
                                //Not sure about DateTimeNow bcoz if in future change UTC then StartDate save according to UTC
                                if (DateTime.UtcNow.ToShortDateString() == workDetails.StartDate.Value.ToShortDateString())
                                {
                                    workDetails.WorkRequestStatus = 15;
                                    workDetails.StartTime         = DateTime.UtcNow;
                                    workDetails.ModifiedBy        = obj.UserId;
                                    workDetails.ModifiedDate      = DateTime.UtcNow;;
                                    objWorkRequestAssignmentRepository.SaveChanges();
                                }

                                obj.ActivityDetails = DarMessage.CRTaskStart(obj.UserName, obj.LocationName);
                                var result = objDARRepository.InsertDARDetailsForTracking(obj);
                                if (result != null && result > 0)
                                {
                                    // obj = null;
                                    obj.Response        = Convert.ToInt32(ServiceResponse.SuccessResponse, CultureInfo.CurrentCulture);
                                    obj.DARId           = result;
                                    obj.ResponseMessage = CommonMessage.SaveSuccessMessage();
                                }
                                else
                                {
                                    obj.Response        = Convert.ToInt32(ServiceResponse.ExeptionResponse, CultureInfo.CurrentCulture);
                                    obj.DARId           = result;
                                    obj.ResponseMessage = CommonMessage.WrongParameterMessage();
                                }
                            }
                            else
                            {
                                obj.Response        = Convert.ToInt32(ServiceResponse.NoRecord, CultureInfo.CurrentCulture);
                                obj.ResponseMessage = CommonMessage.AlreadyAcceptedFacilityRequest();
                            }
                        }
                        //THIS SECTION FOR EMPLOYEE ENDED CR FOR THE DAY AND IF ENDDATE = workDetails.EndDate then update WorkRequestStatus
                        if (obj.FacilityRequest == false && obj.EndTime != null && obj.TaskType == (long)DARTASKTYPECATEGORY.ContinuousRequestEnd)
                        {
                            if (obj.EndTime != null)
                            {
                                obj.EndTime = DateTime.UtcNow.ToString();
                            }

                            objWorkRequestAssignmentRepository = new WorkRequestAssignmentRepository();
                            objWork = new WorkRequestAssignmentModel();

                            var workDetails = objWorkRequestAssignmentRepository.GetSingleOrDefault(t => t.WorkRequestAssignmentID == obj.WorkAssignmentID && t.LocationID == obj.LocationId && t.IsDeleted == false);

                            if (workDetails != null && workDetails.EndDate != null)
                            {
                                //Not sure about DateTimeNow bcoz if in future change UTC then StartDate save according to UTC
                                if (DateTime.UtcNow.ToShortDateString() == workDetails.EndDate.Value.ToShortDateString())
                                {
                                    workDetails.WorkRequestStatus = 16;
                                    workDetails.EndTime           = DateTime.UtcNow;
                                    workDetails.ModifiedBy        = obj.UserId;
                                    workDetails.ModifiedDate      = DateTime.UtcNow;;
                                    objWorkRequestAssignmentRepository.SaveChanges();
                                }

                                obj.ActivityDetails = DarMessage.CRTaskEnd(obj.UserName, obj.LocationName);
                                var result = objDARRepository.InsertDARDetailsForTracking(obj);
                                if (result != null && result > 0)
                                {
                                    // obj = null;
                                    obj.Response        = Convert.ToInt32(ServiceResponse.SuccessResponse, CultureInfo.CurrentCulture);
                                    obj.DARId           = result;
                                    obj.ResponseMessage = CommonMessage.SaveSuccessMessage();
                                }
                                else
                                {
                                    obj.Response        = Convert.ToInt32(ServiceResponse.ExeptionResponse, CultureInfo.CurrentCulture);
                                    obj.DARId           = result;
                                    obj.ResponseMessage = CommonMessage.WrongParameterMessage();
                                }
                            }
                            else
                            {
                                obj.Response        = Convert.ToInt32(ServiceResponse.NoRecord, CultureInfo.CurrentCulture);
                                obj.ResponseMessage = CommonMessage.AlreadyAcceptedFacilityRequest();
                            }
                        }
                    }
                    else
                    {
                        obj.Response        = Convert.ToInt32(ServiceResponse.InvalidSessionResponse, CultureInfo.CurrentCulture);
                        obj.ResponseMessage = CommonMessage.InvalidUser();
                    }
                }
                else
                {
                    obj.Response        = Convert.ToInt32(ServiceResponse.FailedResponse, CultureInfo.CurrentCulture);
                    obj.ResponseMessage = CommonMessage.WrongParameterMessage();
                }
            }
            catch (Exception)
            { throw; }
            return(obj);
        }