Beispiel #1
0
        public List <BLL.Core.WSRE.Models.WSREChainEquipmentModel> GetEquipmentByJobsiteAndSystem(long jobsiteAuto, string system)
        {
            var result = new List <BLL.Core.WSRE.Models.WSREChainEquipmentModel>();

            var systemTypeEnumIndex = 1;

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var equipmentData = dataEntities.Database.SqlQuery <BLL.Core.WSRE.Models.WSREChainEquipmentModel>(
                    "select * from LU_MODULE_SUB module"
                    + " inner join MODEL model on model.model_auto = module.model_auto"
                    + " where module.crsf_auto = @jobsiteAuto"
                    + " and module.systemTypeEnumIndex = " + systemTypeEnumIndex
                    , new SqlParameter("@jobsiteAuto", jobsiteAuto)
                    ).ToList();

                foreach (var item in equipmentData)
                {
                    var equipment = new BLL.Core.WSRE.Models.WSREChainEquipmentModel();
                    equipment.equipmentid_auto    = item.equipmentid_auto;
                    equipment.Serialno            = item.Serialno;
                    equipment.make_auto           = item.make_auto;
                    equipment.systemTypeEnumIndex = item.systemTypeEnumIndex;
                    equipment.crsf_auto           = jobsiteAuto;
                    equipment.model_auto          = item.model_auto;
                    equipment.LinksInChain        = item.LinksInChain;
                    equipment.Module_sub_auto     = item.Module_sub_auto;
                    result.Add(equipment);
                }
            }

            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// Gets a list of equipment for the given Jobsite and Model. This is used in the Equipment Search screen for the Mobile App.
        /// </summary>
        /// <param name="jobsiteAuto">Selected Jobsite auto number</param>
        /// <param name="modelAuto">Selected Model auto number</param>
        /// <returns>List of EquipmentEntity with the results</returns>
        public List <EquipmentEntity> GetEquipmentByJobsiteAndModel(long jobsiteAuto, int modelAuto)
        {
            var result = new List <EquipmentEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var equipments = from equipment in dataEntities.EQUIPMENTs
                                 join mmta in dataEntities.LU_MMTA on equipment.mmtaid_auto equals mmta.mmtaid_auto
                                 join type in dataEntities.TYPEs on mmta.type_auto equals type.type_auto
                                 where equipment.crsf_auto == jobsiteAuto
                                 select new { equipment.equipmentid_auto, equipment.serialno, equipment.unitno, mmta.model_auto, type.typeid };

                if (modelAuto > 0)
                {
                    equipments = equipments.Where(item => item.model_auto == modelAuto);
                }

                result.AddRange(
                    equipments.Select(
                        equipment =>
                        new EquipmentEntity
                {
                    EquipmentId       = equipment.equipmentid_auto,
                    EquipmentSerialNo = equipment.serialno,
                    EquipmentUnitNo   = equipment.unitno,
                    EquipmentFamily   = equipment.typeid
                }));
            }
            return(result);
        }
Beispiel #3
0
        public UserPreferenceEntity GetUserPreferenceById(string userId)
        {
            if (userId.Contains('*'))
            {
                userId = userId.Replace('*', ' ');
            }

            UserPreferenceEntity result = new UserPreferenceEntity();


            result.UndercarriagUOM = "INCH";

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var userall = from users in dataEntities.USER_TABLE
                              where string.Compare(users.userid, userId) == 0
                              select users;

                var user = userall.FirstOrDefault();

                if (user != null)
                {
                    result.UndercarriagUOM = string.IsNullOrEmpty(user.track_uom) ? "INCH" : user.track_uom.ToUpper();
                }
            }

            return(result);
        }
Beispiel #4
0
        /// <summary>
        /// Get all Test Point Images. This is used in the Equipment Search screen for the Mobile App.
        /// </summary>
        /// <returns>List of TestPointImageEntity</returns>
        public List <TestPointImageEntity> GetTestPointImages()
        {
            var result = new List <TestPointImageEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var testPointImages = from images in dataEntities.COMPART_ATTACH_FILESTREAM
                                      join testPointType in dataEntities.COMPART_ATTACH_TYPE on images.compart_attach_type_auto equals testPointType.compart_attach_type_auto
                                      where testPointType.compart_attach_type_name == "compart_testing_point_image"
                                      select
                                      new
                {
                    images.comparttype_auto,
                    images.tool_auto,
                    images.attachment
                };


                foreach (var testPointImage in testPointImages)
                {
                    var newTpi = new TestPointImageEntity
                    {
                        CompartType    = (long)testPointImage.comparttype_auto,
                        Tool           = GetToolCode(testPointImage.tool_auto),
                        TestPointImage = testPointImage.attachment
                                         //TestPointImage = null
                    };

                    result.Add(newTpi);
                }
            }
            return(result);
        }
Beispiel #5
0
        public List <ComponentEntity> GetSelectedComponentsByModuleSubAuto(String moduleSubAutoList)
        {
            var result = new List <ComponentEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var moduleArray = moduleSubAutoList.Split(',');
                var components  = from generalComponents in dataEntities.GENERAL_EQ_UNIT
                                  join comp in dataEntities.LU_COMPART on generalComponents.compartid_auto equals comp.compartid_auto
                                  //join equipment in dataEntities.EQUIPMENTs on generalComponents.equipmentid_auto equals equipment.equipmentid_auto
                                  join module in dataEntities.LU_Module_Sub on generalComponents.module_ucsub_auto equals module.Module_sub_auto
                                  join crsf in dataEntities.CRSFs on module.crsf_auto equals crsf.crsf_auto
                                  join cust in dataEntities.CUSTOMERs on crsf.customer_auto equals cust.customer_auto
                                  //join mmta in dataEntities.LU_MMTA on module.mmtaid_auto equals mmta.mmtaid_auto
                                  //join family in dataEntities.TYPEs on mmta.type_auto equals family.type_auto
                                  join model in dataEntities.MODELs on module.model_auto equals model.model_auto
                                  join compType in dataEntities.LU_COMPART_TYPE on comp.comparttype_auto equals compType.comparttype_auto
                                  join system in dataEntities.LU_SYSTEM on compType.system_auto equals system.system_auto
                                  where moduleArray.Contains(module.Module_sub_auto.ToString()) && (system.system_desc == "undercarriage" || system.system_desc == "U/C")
                                  orderby generalComponents.side, compType.sorder, generalComponents.pos

                    select
                new
                {
                    comp.compartid_auto,
                    generalComponents.equnit_auto,
                    comp.comparttype_auto,
                    comp.compartid,
                    comp.compart,
                    compType.comparttype,
                    generalComponents.side,
                    generalComponents.pos,
                    module.Module_sub_auto
                };


                foreach (var component in components)
                {
                    var newComponent = new ComponentEntity
                    {
                        ComponentId       = component.equnit_auto,
                        ComponentType     = component.comparttype_auto,
                        ComponentIdAuto   = component.compartid_auto,
                        PartNo            = component.comparttype + ": " + component.compartid,
                        ComponentName     = component.compart,
                        ComponentSide     = (Convert.ToInt16(component.side) == 1) ? "Left" : "Right",
                        ComponentPosition = (Convert.ToInt32(component.pos)),
                        ComponentImage    = GetComponentImage(component.comparttype_auto),
                        DefaultTool       = GetComponentDefaultTool(component.compartid_auto),
                        ComponentMethod   = GetComponentMethod(component.compartid_auto),
                        ModuleSubAuto     = component.Module_sub_auto,
                    };

                    result.Add(newComponent);
                }
            }
            return(result);
        }
Beispiel #6
0
        private string GetToolCode(string tool)
        {
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var result = from tools in dataEntities.TRACK_TOOL
                             where tools.tool_name == tool
                             select tools.tool_code;

                return(result.Any() ? result.First() : "R");
            }
        }
        private static int?GetToolAuto(string toolUsed)
        {
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var toolAuto = (from tools in dataEntities.TRACK_TOOL
                                where tools.tool_code == toolUsed
                                select tools.tool_auto).FirstOrDefault();

                return(toolAuto);
            }
        }
Beispiel #8
0
        private static string GetComponentDefaultTool(int compartidAuto)
        {
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var tool = from tools in dataEntities.TRACK_COMPART_EXT
                           where tools.compartid_auto == compartidAuto
                           select tools.tools_auto;

                return(tool.Any() ? TestPointImages.GetToolCode(tool.First()) : "R");
            }
        }
Beispiel #9
0
 public int getUserId(string userName)
 {
     using (var dataEntities = new InfoTrakDataEntities())
     {
         var users = dataEntities.USER_TABLE.Where(m => m.userid == userName);
         if (users.Count() > 0)
         {
             return(users.First().user_auto.LongNullableToInt());
         }
     }
     return(0);
 }
        private static int?GetUserAuto(string examiner)
        {
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var userAuto =
                    (from users in dataEntities.USER_TABLE
                     where users.userid == examiner
                     select users.user_auto).FirstOrDefault();

                return((int)userAuto);
            }
        }
Beispiel #11
0
        private string GetComponentMethod(int compartidAuto)
        {
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var method = from methods in dataEntities.TRACK_COMPART_WORN_CALC_METHOD
                             join compEx in dataEntities.TRACK_COMPART_EXT on methods.track_compart_worn_calc_method_auto equals compEx.track_compart_worn_calc_method_auto
                             where compEx.compartid_auto == compartidAuto
                             select methods.track_compart_worn_calc_method_name;

                return(method.Any() ? method.First() : "ITM");
            }
        }
Beispiel #12
0
        public bool SaveEquipment(NewEquipmentEntity equipment)
        {
            bool result = false;

            using (var dataEntities = new InfoTrakDataEntities())
            {
                byte[] photoByteArr = null;
                try { photoByteArr = Convert.FromBase64String(equipment._base64Image); } catch {  }
                var Equipment_autoParameter = new ObjectParameter("equip_auto", typeof(long))
                {
                    Value = 0
                };
                dataEntities.SaveEquipment(Equipment_autoParameter, equipment._serialno, equipment._unitno, equipment._jobsiteAuto, Convert.ToInt32(equipment._smu),
                                           equipment._modelAuto, DateTime.ParseExact(equipment._creationDate, "d MM yyyy", null), equipment._examiner, equipment._customer, equipment._jobsite, equipment._model, photoByteArr);

                var smu       = equipment._smu;
                var model     = equipment._modelAuto;
                var EquipAuto = (int)Equipment_autoParameter.Value;

                if (EquipAuto > 0)
                {
                    foreach (var details in equipment._details)
                    {
                        int side = 0;
                        if (!details.Side.Equals(string.Empty) || details.Side != null)
                        {
                            if (details.Side.ToLower().Equals("left"))
                            {
                                side = 1;
                            }
                            else if (details.Side.ToLower().Equals("right"))
                            {
                                side = 2;
                            }
                        }

                        dataEntities.SaveComponentDetailsFromMobileService(EquipAuto, int.Parse(details.Compartid), Convert.ToInt32(smu), Convert.ToInt32(model),
                                                                           (byte?)details.Pos, (byte?)(side), details.FlangeType, DateTime.ParseExact(equipment._creationDate, "d MM yyyy", null),
                                                                           equipment._examiner, details.Compart, Convert.ToInt32(details.CompartIdAuto));
                    }

                    //PRN9455
                    equipment._equipmentInspection.EquipmentIdAuto = EquipAuto;

                    if (UndercarriageInspection.Instance.SaveInspectionForNewEquipment(equipment._equipmentInspection))
                    {
                        result = true;
                    }
                }
            }

            return(result);
        }
Beispiel #13
0
        public string GetApplicationVersion()
        {
            string strVersion = string.Empty;

            using (var dataEntities = new InfoTrakDataEntities())
            {
                System.Data.Entity.Core.Objects.ObjectResult <InfoTrakMobileService.DataAccess.Model.spGetMobileAppVersion_Result> r = dataEntities.spGetMobileAppVersion();
                //strVersion = r. .value_key;
                strVersion = r.FirstOrDefault().value_key;
            }

            return(strVersion);
        }
Beispiel #14
0
        public static string GetToolCode(int?toolAuto)
        {
            if (toolAuto == null)
            {
                return("R");
            }
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var toolCode = from tool in dataEntities.TRACK_TOOL
                               where tool.tool_auto == (int)toolAuto
                               select tool.tool_code;

                return(toolCode.Any() ? toolCode.First() : "R"); // R by default
            }
        }
        /// <summary>
        /// Get Dealership Limits for the Mobile App.
        /// </summary>

        /// <returns>List of Dealership Limits</returns>
        public List <DealershipLimitEntity> GetDealershipLimits()
        {
            var result = new List <DealershipLimitEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var limitQuery = from limits in dataEntities.TRACK_DEALERSHIP_LIMITS
                                 select limits;

                result.AddRange(limitQuery.Select(trackDealershipLimits => new DealershipLimitEntity
                {
                    ALimit = trackDealershipLimits.a_limit, BLimit = trackDealershipLimits.b_limit, CLimit = trackDealershipLimits.c_limit
                }));
            }
            return(result);
        }
Beispiel #16
0
        public int?GetPositionforNewEquip(long trackUnitAuto)
        {
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var result = from component in dataEntities.Mbl_NewGENERAL_EQ_UNIT
                             where component.compartid_auto == trackUnitAuto
                             select component.pos;

                if (result.Any())
                {
                    return(result.First());
                }
            }

            return(1);
        }
Beispiel #17
0
        public List <GETEntity> GetImplementsByEquipment(long equipmentAuto, string serial_no)
        {
            var result = new List <GETEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                // This SQL is converted from procedure: [return_get_equip_implement_with_no_implementcategory]
                var mmtaid_auto = (from equipment in dataEntities.EQUIPMENTs
                                   where equipment.equipmentid_auto == equipmentAuto
                                   select new { equipment.mmtaid_auto }).Single();
                int selectedMmtaid = mmtaid_auto.mmtaid_auto;

                var model_auto = (from lu_mmta in dataEntities.LU_MMTA
                                  where lu_mmta.mmtaid_auto == selectedMmtaid
                                  select new { lu_mmta.model_auto }).Single();
                int selectedModel = model_auto.model_auto;

                var implement_auto = from get_implement_make_model in dataEntities.GET_IMPLEMENT_MAKE_MODEL
                                     where get_implement_make_model.model_auto == selectedModel
                                     select get_implement_make_model.implement_auto;
                long[] selectedImplementAuto = implement_auto.ToArray();

                var implements = from get in dataEntities.GETs
                                 join lu_implement in dataEntities.LU_IMPLEMENT
                                 on get.implement_auto equals lu_implement.implement_auto
                                 join equipment in dataEntities.EQUIPMENTs on get.equipmentid_auto equals equipment.equipmentid_auto
                                 join make in dataEntities.MAKEs on get.make_auto equals make.make_auto
                                 where (
                    get.equipmentid_auto == equipmentAuto &&
                    selectedImplementAuto.Contains(lu_implement.implement_auto)
                    )
                                 orderby get.impserial
                                 select get;

                result.AddRange(
                    implements.Select(
                        get => new GETEntity {
                    get_auto         = get.get_auto,
                    impserial        = get.impserial,
                    implement_auto   = get.implement_auto,
                    equipmentid_auto = get.equipmentid_auto,
                    serial_no        = serial_no
                }));
            }
            return(result);
        }
Beispiel #18
0
        public long GetEquipmentIdBySerialAndUnit(string serial, string unit)
        {
            long result = 0;

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var equipments = from equipment in dataEntities.Mbl_NewEquipment
                                 where equipment.serialno == serial //&& equipment.unitno == unit.Trim()+"- NEW"
                                 select equipment;

                if (equipments.FirstOrDefault() != null)
                {
                    result = equipments.FirstOrDefault().equipmentid_auto;
                }
            }
            return(result);
        }
Beispiel #19
0
        private static List <ModelEntity> GetModels()
        {
            var result = new List <ModelEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                IQueryable <MODEL> models = from model in dataEntities.MODELs
                                            select model;

                result.AddRange(
                    models.Select(model => new ModelEntity {
                    ModelId = model.model_auto, ModelName = model.modelid
                }));
            }

            return(result);
        }
Beispiel #20
0
        /// <summary>
        /// Gets the Jobsite details given a jobsite auto number. This is used in the Equipment Search screen for the Mobile App.
        /// </summary>
        /// <param name="jobsiteAuto">Jobsite auto number</param>
        /// <returns>List of JobsiteEntity with the results.</returns>
        public List <JobsiteEntity> GetJobsiteById(long jobsiteAuto)
        {
            var result = new List <JobsiteEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                IQueryable <CRSF> jobsites = from jobsite in dataEntities.CRSFs
                                             where jobsite.crsf_auto == jobsiteAuto
                                             select jobsite;

                result.AddRange(
                    jobsites.Select(
                        jobsite => new JobsiteEntity {
                    JobsiteId = jobsite.crsf_auto, JobsiteName = jobsite.site_name
                }));
            }
            return(result);
        }
Beispiel #21
0
        /// <summary>
        /// Authenticate user for the Mobile App.
        /// </summary>
        /// <param name="username">Username</param>
        /// <param name="password">Password</param>
        /// <returns>Returns true or false depending on the authentication process.</returns>
        public bool Authenticate(String username, String password)
        {
            if (username.Contains('*'))
            {
                username = username.Replace('*', ' ');
            }

            bool result;

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var user = from users in dataEntities.USER_TABLE
                           where users.userid == username && users.passwd == password
                           select users;

                result = user.Any();
            }
            return(result);
        }
Beispiel #22
0
        /// <summary>
        /// Get all Jobsites for a given customer. This is used in the Equipment Search screen for the Mobile App.
        /// </summary>
        /// <param name="customerAuto">Customer auto number</param>
        /// <returns>Returns a List of JobsiteEntity with the results</returns>
        public List <JobsiteEntity> GetJobsitesByCustomer(long customerAuto)
        {
            var result = new List <JobsiteEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var jobsites = from jobsite in dataEntities.CRSFs
                               join customer in dataEntities.CUSTOMERs on jobsite.customer_auto equals customer.customer_auto
                               where customer.customer_auto == customerAuto
                               select jobsite;

                result.AddRange(
                    jobsites.Select(
                        jobsite => new JobsiteEntity {
                    JobsiteId = jobsite.crsf_auto, JobsiteName = jobsite.site_name
                }));
            }
            return(result);
        }
Beispiel #23
0
        private static List <CustomerEntity> GetCustomers()
        {
            var result = new List <CustomerEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var customers = from customer in dataEntities.CUSTOMERs
                                select customer;

                result.AddRange(
                    customers.Select(
                        customer =>
                        new CustomerEntity {
                    CustomerId = customer.customer_auto, CustomerName = customer.cust_name
                }));
            }

            return(result);
        }
Beispiel #24
0
        public UndercarriageInspectionEntity SaveEquipmentReturnInspection(NewEquipmentEntity equipment)
        {
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var Equipment_autoParameter = new ObjectParameter("equip_auto", typeof(long))
                {
                    Value = 0
                };
                dataEntities.SaveEquipment(Equipment_autoParameter, equipment._serialno, equipment._unitno, equipment._jobsiteAuto, Convert.ToInt32(equipment._smu),
                                           equipment._modelAuto, DateTime.ParseExact(equipment._creationDate, "d MM yyyy", null), equipment._examiner, equipment._customer, equipment._jobsite, equipment._model);

                var smu       = equipment._smu;
                var model     = equipment._modelAuto;
                var EquipAuto = (int)Equipment_autoParameter.Value;

                if (EquipAuto > 0)
                {
                    foreach (var details in equipment._details)
                    {
                        int side = 0;
                        if (!details.Side.Equals(string.Empty) || details.Side != null)
                        {
                            if (details.Side.ToLower().Equals("left"))
                            {
                                side = 1;
                            }
                            else if (details.Side.ToLower().Equals("right"))
                            {
                                side = 2;
                            }
                        }

                        dataEntities.SaveComponentDetailsFromMobileService(EquipAuto, int.Parse(details.Compartid), Convert.ToInt32(smu), Convert.ToInt32(model),
                                                                           (byte?)details.Pos, (byte?)(side), details.FlangeType, DateTime.ParseExact(equipment._creationDate, "d MM yyyy", null),
                                                                           equipment._examiner, details.Compart, Convert.ToInt32(details.CompartIdAuto));
                    }
                    equipment._equipmentInspection.EquipmentIdAuto = EquipAuto;
                    return(equipment._equipmentInspection);
                }
                return(null);
            }
        }
Beispiel #25
0
        /// <summary>
        /// Get Models for a given Jobsite. This is used in the Equipment Search Screen for the Mobile App
        /// </summary>
        /// <param name="jobsiteAuto">Jobsite auto number</param>
        /// <returns>Returns a List of ModelEntity with the results.</returns>
        public List <ModelEntity> GetModelsByJobsite(long jobsiteAuto)
        {
            var result = new List <ModelEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var models = from model in dataEntities.MODELs
                             join mmta in dataEntities.LU_MMTA on model.model_auto equals mmta.model_auto
                             join equipment in dataEntities.EQUIPMENTs on mmta.mmtaid_auto equals equipment.mmtaid_auto
                             where equipment.crsf_auto == jobsiteAuto
                             select model;

                result.AddRange(
                    models.Select(model => new ModelEntity {
                    ModelId = model.model_auto, ModelName = model.modelid
                }).Distinct());
            }

            return(result);
        }
Beispiel #26
0
        private static byte[] GetComponentImage(int comparttypeAuto)
        {
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var result = from componentAttachment in dataEntities.COMPART_ATTACH_FILESTREAM
                             join componentAttachmentType in dataEntities.COMPART_ATTACH_TYPE on
                             componentAttachment.compart_attach_type_auto equals
                             componentAttachmentType.compart_attach_type_auto
                             where
                             componentAttachment.comparttype_auto == comparttypeAuto &&
                             componentAttachmentType.compart_attach_type_name == "comparttype_image"
                             select componentAttachment.attachment;

                if (result.Any())
                {
                    return(result.First());
                }
            }

            return(null);
        }
Beispiel #27
0
        /// <summary>
        /// Get all component details for the selected equipment. This is used in the Equipment Search screen for the Mobile App.
        /// </summary>
        /// <param name="equipmentList">Comma separated equipment auto list</param>
        /// <returns>List of ComponentEntity for the selected equipment</returns>
        public List <ComponentEntity> GetSelectedComponents(String equipmentList)
        {
            var result            = new List <ComponentEntity>();
            int temp              = 0;
            var equipmentArrayInt = equipmentList.Split(',').Select(m => int.TryParse(m, out temp) ? int.Parse(m):0);
            var lastInspections   = new List <IEnumerable <BLL.Core.ViewModel.ComponentWornReadingViewModel> >();

            using (var dalDataEntities = new DAL.UndercarriageContext()) {
                lastInspections = dalDataEntities.TRACK_INSPECTION.Where(m => equipmentArrayInt.Any(k => k == m.equipmentid_auto)).GroupBy(m => m.equipmentid_auto).Select(group => group.OrderByDescending(m => m.inspection_date).FirstOrDefault())
                                  .Select(m => m.TRACK_INSPECTION_DETAIL.Select(k => new BLL.Core.ViewModel.ComponentWornReadingViewModel {
                    Id = k.inspection_detail_auto, ComponentId = (int)k.track_unit_auto, Reading = k.reading, WornPercentage = k.worn_percentage, EquipmentId = (int)k.TRACK_INSPECTION.equipmentid_auto, ToolId = k.tool_auto ?? 0, ToolSymbol = (k.TRACK_TOOL != null ? k.TRACK_TOOL.tool_code : "UN")
                })).ToList();
            }
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var equipmentArray = equipmentList.Split(',');
                var components     = from generalComponents in dataEntities.GENERAL_EQ_UNIT
                                     join comp in dataEntities.LU_COMPART on generalComponents.compartid_auto equals comp.compartid_auto
                                     join equipment in dataEntities.EQUIPMENTs on generalComponents.equipmentid_auto equals equipment.equipmentid_auto
                                     join crsf in dataEntities.CRSFs on equipment.crsf_auto equals crsf.crsf_auto
                                     join cust in dataEntities.CUSTOMERs on crsf.customer_auto equals cust.customer_auto
                                     join mmta in dataEntities.LU_MMTA on equipment.mmtaid_auto equals mmta.mmtaid_auto
                                     join family in dataEntities.TYPEs on mmta.type_auto equals family.type_auto
                                     join model in dataEntities.MODELs on mmta.model_auto equals model.model_auto
                                     join compType in dataEntities.LU_COMPART_TYPE on comp.comparttype_auto equals compType.comparttype_auto
                                     join system in dataEntities.LU_SYSTEM on compType.system_auto equals system.system_auto
                                     where equipmentArray.Contains(equipment.equipmentid_auto.ToString()) && (system.system_desc == "undercarriage" || system.system_desc == "U/C")
                                     orderby generalComponents.side, compType.sorder, generalComponents.pos

                    select
                new
                {
                    comp.compartid_auto,
                    generalComponents.equnit_auto,
                    comp.comparttype_auto,
                    comp.compartid,
                    comp.compart,
                    compType.comparttype,
                    generalComponents.side,
                    generalComponents.pos,
                    equipment.equipmentid_auto
                };


                foreach (var component in components)
                {
                    var newComponent = new ComponentEntity
                    {
                        ComponentId        = component.equnit_auto,
                        ComponentType      = component.comparttype_auto,
                        ComponentIdAuto    = component.compartid_auto,
                        PartNo             = component.comparttype + ": " + component.compartid,
                        ComponentName      = component.compart,
                        ComponentSide      = (Convert.ToInt16(component.side) == 1) ? "Left" : "Right",
                        ComponentPosition  = (Convert.ToInt32(component.pos)),
                        ComponentImage     = GetComponentImage(component.comparttype_auto),
                        DefaultTool        = GetComponentDefaultTool(component.compartid_auto),
                        ComponentMethod    = GetComponentMethod(component.compartid_auto),
                        EquipmentId        = component.equipmentid_auto,
                        LastReading        = (lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).Count() > 0 && lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).FirstOrDefault().Where(k => k.ComponentId == component.equnit_auto).Count() > 0) ? (double)lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).FirstOrDefault().Where(k => k.ComponentId == component.equnit_auto).FirstOrDefault().Reading : 0,
                        LastWornPercentage = Decimal.ToInt32((lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).Count() > 0 && lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).FirstOrDefault().Where(k => k.ComponentId == component.equnit_auto).Count() > 0) ? lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).FirstOrDefault().Where(k => k.ComponentId == component.equnit_auto).FirstOrDefault().WornPercentage : Decimal.Zero),
                        ToolId             = (lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).Count() > 0 && lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).FirstOrDefault().Where(k => k.ComponentId == component.equnit_auto).Count() > 0) ? lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).FirstOrDefault().Where(k => k.ComponentId == component.equnit_auto).FirstOrDefault().ToolId : 0,
                        ToolSymbol         = (lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).Count() > 0 && lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).FirstOrDefault().Where(k => k.ComponentId == component.equnit_auto).Count() > 0) ? lastInspections.Where(m => m.Any(k => k.EquipmentId == component.equipmentid_auto)).FirstOrDefault().Where(k => k.ComponentId == component.equnit_auto).FirstOrDefault().ToolSymbol : "UN"
                    };

                    result.Add(newComponent);
                }
            }
            return(result);
        }
        public bool SaveInspectionForNewEquipment(UndercarriageInspectionEntity inspection)
        {
            using (var dataEntities = new InfoTrakDataEntities())
            {
                var inspectionAutoObjectParameter = new ObjectParameter("inspection_auto", typeof(long))
                {
                    Value = 0
                };

                var userAuto = GetUserAuto(inspection.Examiner);
                int SMU      = 0;

                if (!inspection.SMU.Equals(string.Empty))
                {
                    SMU = int.Parse(inspection.SMU);
                }

                var examinerUser = dataEntities.USER_TABLE.Where(m => m.userid == inspection.Examiner || m.username == inspection.Examiner);
                if (examinerUser.Count() > 0)
                {
                    inspection.Examiner = examinerUser.First().username;
                }
                if (inspection.Examiner == null)
                {
                    var examinerInfotrak = dataEntities.USER_TABLE.Find(1);
                    if (examinerInfotrak == null)
                    {
                        inspection.Examiner = "Unknown";
                    }
                    else
                    {
                        inspection.Examiner = examinerInfotrak.username;
                    }
                }
                dataEntities.SaveInspectionForNewEquipment(inspectionAutoObjectParameter,
                                                           inspection.EquipmentIdAuto, SMU, inspection.TrackSagLeft,
                                                           inspection.TrackSagRight, inspection.DryJointsLeft,
                                                           inspection.DryJointsRight, inspection.ExtCannonLeft, inspection.ExtCannonRight,
                                                           (short)inspection.Impact, (short)inspection.Abrasive, (short)inspection.Moisture,
                                                           (short)inspection.Packing, inspection.InspectorComments, inspection.JobsiteComments,
                                                           DateTime.ParseExact(inspection.InspectionDate, "dd MM yyyy", null), inspection.Examiner,
                                                           inspection.leftTrackSagComment, inspection.rightTrackSagComment, inspection.leftCannonExtComment,
                                                           inspection.rightCannonExtComment, inspection.leftTrackSagImage, inspection.rightTrackSagImage, inspection.leftCannonExtImage,
                                                           inspection.rightCannonExtImage, inspection.travelForward, inspection.travelReverse, inspection.leftScallop, inspection.rightScallop, inspection.travelledByKms);

                var inspectionAuto = (int)inspectionAutoObjectParameter.Value;

                if (inspectionAuto > 0)
                {
                    decimal reading = 0;
                    foreach (var componentDetails in inspection.Details)
                    {
                        //var detailAutoObjectParameter = new ObjectParameter("inspection_detail_auto", typeof(long)) {Value = 0};

                        // if (componentDetails.TrackUnitAuto <= 0 || String.IsNullOrEmpty(componentDetails.Reading))
                        //continue;

                        //var componentInstance =
                        //    dataEntities.GetComponentById(componentDetails.TrackUnitAuto).FirstOrDefault();

                        //if (componentInstance == null || componentInstance.equnit_auto <= 0) continue;

                        if (!String.IsNullOrEmpty(componentDetails.Reading))
                        {
                            reading = decimal.Parse(componentDetails.Reading);
                        }

                        dataEntities.SaveInspectionDetailsForNewEquipment(inspectionAuto,
                                                                          (int)componentDetails.TrackUnitAuto,
                                                                          reading,
                                                                          GetToolAuto(componentDetails.ToolUsed),
                                                                          componentDetails.Comments);

                        reading = 0;
                        //var detailAuto = (int) detailAutoObjectParameter.Value;
                        var position = Components.Instance.GetPositionforNewEquip(componentDetails.TrackUnitAuto);

                        if (String.IsNullOrEmpty(componentDetails.Image))
                        {
                            continue;
                        }

                        var input = Convert.FromBase64String(componentDetails.Image);

                        var result = new ObjectParameter("result", typeof(int))
                        {
                            Value = 0
                        };
                        dataEntities.StoreCompartAttachmentForNewEquip(componentDetails.CompartIdAuto,
                                                                       componentDetails.AttachmentType, input,
                                                                       "ImageFromMobile.jpg", DateTime.Now, userAuto, "", inspectionAuto,
                                                                       null, null, position, result);
                    }



                    return(true);
                }
            }
            return(false);
        }
Beispiel #29
0
        /// <summary>
        /// Get all limits. This is used in the Equipment Search screen for the Mobile App.
        /// </summary>
        /// <returns>List of LimitsEntity for the selected equipment</returns>
        public List <LimitsEntity> GetUCLimits()
        {
            var result = new List <LimitsEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var limitsForEquipment = dataEntities.GetLimitsForEquipment(0, 0, 0, 0, 0, 0, 0);

                foreach (var limit in limitsForEquipment)
                {
                    var newLimit = new LimitsEntity
                    {
                        CompartIdAuto       = limit.compartid_auto,
                        Method              = limit.method,
                        ITMTool             = GetToolCode(limit.itm_tool),
                        StartDepthNew       = limit.start_depth_new,
                        WearDepth10Percent  = limit.wear_depth_10_percent,
                        WearDepth20Percent  = limit.wear_depth_20_percent,
                        WearDepth30Percent  = limit.wear_depth_30_percent,
                        WearDepth40Percent  = limit.wear_depth_40_percent,
                        WearDepth50Percent  = limit.wear_depth_50_percent,
                        WearDepth60Percent  = limit.wear_depth_60_percent,
                        WearDepth70Percent  = limit.wear_depth_70_percent,
                        WearDepth80Percent  = limit.wear_depth_80_percent,
                        WearDepth90Percent  = limit.wear_depth_90_percent,
                        WearDepth100Percent = limit.wear_depth_100_percent,
                        WearDepth110Percent = limit.wear_depth_110_percent,
                        WearDepth120Percent = limit.wear_depth_120_percent,
                        CATTool             = GetToolCode(limit.cat_tool),
                        Slope             = limit.slope,
                        AdjToBase         = limit.adjust_base,
                        HiInflectionPoint = limit.hi_inflectionPoint,
                        HiSlope1          = limit.hi_slope1,
                        HiIntercept1      = limit.hi_intercept1,
                        HiSlope2          = limit.hi_slope2,
                        HiIntercept2      = limit.hi_intercept2,
                        MiInflectionPoint = limit.mi_inflectionPoint,
                        MiSlope1          = limit.mi_slope1,
                        MiIntercept1      = limit.mi_intercept1,
                        MiSlope2          = limit.mi_slope2,
                        MiIntercept2      = limit.mi_intercept2,

                        //PRN9826
                        KomatsuTool     = limit.komatsu_tool,
                        ImpactSlope     = limit.impact_slope,
                        ImpactIntercept = limit.impact_intercept,
                        NormalSlope     = limit.normal_slope,
                        NormalIntercept = limit.normal_intercept,

                        HitachiTool        = limit.Hitachi_tool,
                        ImpactSlopeHit     = limit.hit_impact_slope,
                        ImpactInterceptHit = limit.hit_impact_intercept,
                        NormalSlopeHit     = limit.hit_normal_slope,
                        NormalInterceptHit = limit.hit_normal_intercept,

                        LiebherrTool       = limit.Liebherr_tool,
                        ImpactSlopeLie     = limit.lie_impact_slope,
                        ImpactInterceptLie = limit.lie_impact_intercept,
                        NormalSlopeLie     = limit.lie_normal_slope,
                        NormalInterceptLie = limit.lie_normal_intercept
                    };
                    result.Add(newLimit);
                }
            }
            return(result);
        }
Beispiel #30
0
        /// <summary>
        /// Get all equipment details for the selected equipment. This is used in the Equipment Search screen for the Mobile App.
        /// </summary>
        /// <param name="equipmentList">Comma separated equipment auto list</param>
        /// <returns>List of EquipmentEntity for the selected equipment</returns>
        public List <EquipmentEntity> GetSelectedEquipment(String equipmentList)
        {
            var result = new List <EquipmentEntity>();

            using (var dataEntities = new InfoTrakDataEntities())
            {
                var equipmentArray = equipmentList.Split(',');
                var equipments     = from equipment in dataEntities.EQUIPMENTs
                                     join crsf in dataEntities.CRSFs on equipment.crsf_auto equals crsf.crsf_auto
                                     join cust in dataEntities.CUSTOMERs on crsf.customer_auto equals cust.customer_auto
                                     join mmta in dataEntities.LU_MMTA on equipment.mmtaid_auto equals mmta.mmtaid_auto
                                     join family in dataEntities.TYPEs on mmta.type_auto equals family.type_auto
                                     join model in dataEntities.MODELs on mmta.model_auto equals model.model_auto
                                     where equipmentArray.Contains(equipment.equipmentid_auto.ToString())
                                     select
                                     new
                {
                    equipment.equipmentid_auto,
                    equipment.serialno,
                    equipment.unitno,
                    equipment.currentsmu,
                    crsf.site_name,
                    cust.cust_name,
                    family.typeid,
                    model.modelid,
                    model.model_auto,
                    crsf.crsf_auto,
                    crsf.site_street,
                    crsf.site_suburb,
                    crsf.site_state,
                    crsf.site_postcode,
                    crsf.site_country
                };

                //TODO: Get equipment image
                //byte[] bytesImage =
                //    File.ReadAllBytes(HostingEnvironment.MapPath("~/Images/DefaultEquipment.png"));

                // ReSharper disable once LoopCanBeConvertedToQuery
                // Cannot use LINQ because the GetEquipmentLocation function is not supported.
                foreach (var equipment in equipments)
                {
                    // TT-49 Load equipment photo
                    byte[] bytesImage = new DAL.UndercarriageContext().EQUIPMENTs.Find(equipment.equipmentid_auto).EquipmentPhoto;
                    if (bytesImage == null)
                    {
                        bytesImage = File.ReadAllBytes(HostingEnvironment.MapPath("~/Images/DefaultEquipment.png"));
                    }

                    var newEquipment = new EquipmentEntity
                    {
                        EquipmentId          = equipment.equipmentid_auto,
                        EquipmentSerialNo    = equipment.serialno,
                        EquipmentUnitNo      = equipment.unitno,
                        EquipmentCustomer    = equipment.cust_name,
                        EquipmentJobsite     = equipment.site_name,
                        EquipmentJobsiteAuto = equipment.crsf_auto,
                        EquipmentFamily      = equipment.typeid,
                        EquipmentModel       = equipment.modelid,
                        EquipmentModelAuto   = equipment.model_auto,
                        EquipmentSMU         = equipment.currentsmu.ToString(),
                        EquipmentImage       = bytesImage,
                        EquipmentLocation    =
                            GetEquipmentLocation(equipment.site_street, equipment.site_suburb, equipment.site_state,
                                                 equipment.site_country)
                    };

                    result.Add(newEquipment);
                }

                var isUCSubSystemVisible = (from settings in dataEntities.APPLICATION_LU_CONFIG
                                            where settings.variable_key == "UCSubSysSerialShow"
                                            select settings.value_key).FirstOrDefault();

                if (isUCSubSystemVisible.Equals("1"))
                {
                    foreach (var equip in result)
                    {
                        var UCSubSerial = string.Empty;
                        var query       = from sub in dataEntities.LU_Module_Sub
                                          join geu in dataEntities.GENERAL_EQ_UNIT on sub.Module_sub_auto equals geu.module_ucsub_auto
                                          join lc in dataEntities.LU_COMPART on geu.compartid_auto equals lc.compartid_auto
                                          join lct in dataEntities.LU_COMPART_TYPE on lc.comparttype_auto equals lct.comparttype_auto
                                          where lct.comparttype == "Link" && geu.side == 1 && geu.equipmentid_auto == equip.EquipmentId
                                          select new { sub.Serialno };

                        if (query.FirstOrDefault() != null)
                        {
                            UCSubSerial = query.FirstOrDefault().Serialno;
                        }



                        equip.UCSerialLeft = UCSubSerial.ToString();
                        UCSubSerial        = string.Empty;
                        query = null;

                        query = (from sub in dataEntities.LU_Module_Sub
                                 join geu in dataEntities.GENERAL_EQ_UNIT on sub.Module_sub_auto equals geu.module_ucsub_auto
                                 join lc in dataEntities.LU_COMPART on geu.compartid_auto equals lc.compartid_auto
                                 join lct in dataEntities.LU_COMPART_TYPE on lc.comparttype_auto equals lct.comparttype_auto
                                 where lct.comparttype == "Link" && geu.side == 2 && geu.equipmentid_auto == equip.EquipmentId
                                 select new { sub.Serialno });

                        if (query.FirstOrDefault() != null)
                        {
                            UCSubSerial = query.FirstOrDefault().Serialno;
                        }

                        equip.UCSerialRight = UCSubSerial.ToString();
                    }
                }
            }
            return(result);
        }