/// <summary>
        /// Upload Machine Master
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public CommonResponse UploadMachineMaster(List <UploadMachine> data)
        {
            CommonResponse obj = new CommonResponse();

            try
            {
                var check1 = db.UnitworkccsTblmachinedetails.Where(m => m.IsDeleted == 0).ToList();
                check1.ForEach(m => m.IsDeleted = 1);
                db.SaveChanges();

                foreach (var item in data)
                {
                    var check = db.UnitworkccsTblmachinedetails.Where(m => m.MachineName == item.machineNo).FirstOrDefault();
                    if (check == null)
                    {
                        UnitworkccsTblmachinedetails tblmachinedetails = new UnitworkccsTblmachinedetails();
                        if (item.plantNo != null)
                        {
                            var plantId = db.UnitworkccsTblplant.Where(m => m.PlantCode == item.plantNo).Select(m => m.PlantId).FirstOrDefault();
                            tblmachinedetails.PlantId = plantId;
                        }

                        if (item.cellName != null)
                        {
                            var cellId = db.UnitworkccsTblshop.Where(m => m.ShopName == item.cellName).Select(m => m.ShopId).FirstOrDefault();
                            tblmachinedetails.ShopId = cellId;
                        }
                        else
                        {
                            var cellId = db.UnitworkccsTblshop.Where(m => m.ShopName == "Default").Select(m => m.ShopId).FirstOrDefault();
                            tblmachinedetails.ShopId = cellId;
                        }

                        if (item.subCellName != null)
                        {
                            var subCellId = db.UnitworkccsTblcell.Where(m => m.CellName == item.subCellName).Select(m => m.CellId).FirstOrDefault();
                            tblmachinedetails.CellId = subCellId;
                        }
                        else
                        {
                            var subCellId = db.UnitworkccsTblcell.Where(m => m.CellName == "Default").Select(m => m.CellId).FirstOrDefault();
                            tblmachinedetails.CellId = subCellId;
                        }

                        if (item.tallStockAvailibility != null)
                        {
                            var tallStockId = db.UnitworkccsTbltallstockavailibility.Where(m => m.TallStockAvailName == item.tallStockAvailibility).Select(m => m.TallStockAvailId).FirstOrDefault();
                            if (tallStockId != 0)
                            {
                                tblmachinedetails.TallStockAvailId = tallStockId;
                            }
                        }

                        if (item.noOfAxis != 0)
                        {
                            var noOfAxisId = db.UnitworkccsTblnoofaxis.Where(m => m.NoOfAxis == item.noOfAxis).Select(m => m.NoOfAxisId).FirstOrDefault();
                            if (noOfAxisId != 0)
                            {
                                tblmachinedetails.NoOfAxisId = noOfAxisId;
                            }
                        }

                        if (item.pallet != null)
                        {
                            var palletId = db.UnitworkccsTblpallet.Where(m => m.PalletName == item.pallet).Select(m => m.PalletId).FirstOrDefault();
                            if (palletId != 0)
                            {
                                tblmachinedetails.PalletId = palletId;
                            }
                        }

                        if (item.machineCategory != null)
                        {
                            var machineCategoryId = db.UnitworkccsTblmachinecategorynames.Where(m => m.MachineCategoryName == item.machineCategory).Select(m => m.MachineCategoryId).FirstOrDefault();
                            if (machineCategoryId != 0)
                            {
                                tblmachinedetails.MachineCategoryId = machineCategoryId;
                            }
                        }

                        if (item.machineMake != null)
                        {
                            var machineMakeId = db.UnitworkccsTblMachinemakedetails.Where(m => m.MakeName == item.machineMake).Select(m => m.MakeId).FirstOrDefault();
                            if (machineMakeId != 0)
                            {
                                tblmachinedetails.MachineMake = Convert.ToString(machineMakeId);
                            }
                        }

                        tblmachinedetails.Mmmgroup           = item.mmmGroup;
                        tblmachinedetails.DedicatedOrShared  = item.dedicatedOrShared;
                        tblmachinedetails.PrimaryOrSecondary = item.primaryOrSecondary;
                        tblmachinedetails.MachineSpec        = item.machineSpec;
                        tblmachinedetails.ChuckOrRodSize     = item.chuckOrRodSize;
                        tblmachinedetails.TableSize          = item.tableSize;
                        tblmachinedetails.Category           = item.criticalOrNonCritical;
                        tblmachinedetails.Ipaddress          = item.ipAddress;
                        tblmachinedetails.MachineName        = item.machineNo;
                        tblmachinedetails.MachineDescription = item.machineName;
                        tblmachinedetails.MachineDisplayName = item.machineNo;
                        tblmachinedetails.MachinePockets     = item.noOfToolStation;

                        if (item.machineBelongTo == "Wimarasys")
                        {
                            tblmachinedetails.IsWimerasys      = 1;
                            tblmachinedetails.MachineModelType = 99;
                        }
                        else if (item.machineBelongTo == "SRKS")
                        {
                            if (item.controllerType == "FANUC")
                            {
                                tblmachinedetails.ControllerType   = "FANUC";
                                tblmachinedetails.MachineModelType = 1;
                            }
                            else if (item.controllerType == "DL")
                            {
                                tblmachinedetails.ControllerType   = "DL";
                                tblmachinedetails.IsPcb            = 1;
                                tblmachinedetails.MachineModelType = 4;
                            }
                        }
                        else if (item.machineBelongTo == null)
                        {
                            tblmachinedetails.IsWimerasys    = 0;
                            tblmachinedetails.ControllerType = null;
                            tblmachinedetails.IsPcb          = null;
                        }

                        tblmachinedetails.IsNormalWc        = 0;
                        tblmachinedetails.CreatedOn         = DateTime.Now;
                        tblmachinedetails.InsertedOn        = Convert.ToString(DateTime.Now);
                        tblmachinedetails.InsertedBy        = 1;
                        tblmachinedetails.EnableLockLogic   = 0;
                        tblmachinedetails.ServerTabFlagSync = 0;
                        tblmachinedetails.ServerTabCheck    = 0;
                        tblmachinedetails.IsShiftWise       = 0;
                        tblmachinedetails.IsDeleted         = 0;
                        tblmachinedetails.IsDlversion       = 0;
                        db.UnitworkccsTblmachinedetails.Add(tblmachinedetails);
                        db.SaveChanges();
                        obj.isStatus = true;
                        obj.response = ResourceResponse.AddedSuccessMessage;
                    }
                    else
                    {
                        if (item.plantNo != null)
                        {
                            var plantId = db.UnitworkccsTblplant.Where(m => m.PlantCode == item.plantNo).Select(m => m.PlantId).FirstOrDefault();
                            check.PlantId = plantId;
                        }


                        if (item.cellName != null)
                        {
                            var cellId = db.UnitworkccsTblshop.Where(m => m.ShopName == item.cellName).Select(m => m.ShopId).FirstOrDefault();
                            check.ShopId = cellId;
                        }


                        if (item.subCellName != null)
                        {
                            var subCellId = db.UnitworkccsTblcell.Where(m => m.CellName == item.subCellName).Select(m => m.CellId).FirstOrDefault();
                            check.CellId = subCellId;
                        }

                        if (item.tallStockAvailibility != null)
                        {
                            var tallStockId = db.UnitworkccsTbltallstockavailibility.Where(m => m.TallStockAvailName == item.tallStockAvailibility).Select(m => m.TallStockAvailId).FirstOrDefault();
                            if (tallStockId != 0)
                            {
                                check.TallStockAvailId = tallStockId;
                            }
                        }

                        if (item.noOfAxis != 0)
                        {
                            var noOfAxisId = db.UnitworkccsTblnoofaxis.Where(m => m.NoOfAxis == item.noOfAxis).Select(m => m.NoOfAxisId).FirstOrDefault();
                            if (noOfAxisId != 0)
                            {
                                check.NoOfAxisId = noOfAxisId;
                            }
                        }

                        if (item.pallet != null)
                        {
                            var palletId = db.UnitworkccsTblpallet.Where(m => m.PalletName == item.pallet).Select(m => m.PalletId).FirstOrDefault();
                            if (palletId != 0)
                            {
                                check.PalletId = palletId;
                            }
                        }

                        if (item.machineCategory != null)
                        {
                            var machineCategoryId = db.UnitworkccsTblmachinecategorynames.Where(m => m.MachineCategoryName == item.machineCategory).Select(m => m.MachineCategoryId).FirstOrDefault();
                            if (machineCategoryId != 0)
                            {
                                check.MachineCategoryId = machineCategoryId;
                            }
                        }

                        if (item.machineMake != null)
                        {
                            var machineMakeId = db.UnitworkccsTblMachinemakedetails.Where(m => m.MakeName == item.machineMake).Select(m => m.MakeId).FirstOrDefault();
                            if (machineMakeId != 0)
                            {
                                check.MachineMake = Convert.ToString(machineMakeId);
                            }
                        }

                        check.Mmmgroup           = item.mmmGroup;
                        check.DedicatedOrShared  = item.dedicatedOrShared;
                        check.PrimaryOrSecondary = item.primaryOrSecondary;
                        check.MachineSpec        = item.machineSpec;
                        check.ChuckOrRodSize     = item.chuckOrRodSize;
                        check.TableSize          = item.tableSize;
                        check.Category           = item.criticalOrNonCritical;
                        check.Ipaddress          = item.ipAddress;
                        check.MachineName        = item.machineNo;
                        check.MachineDescription = item.machineName;
                        check.MachineDisplayName = item.machineNo;
                        check.MachinePockets     = item.noOfToolStation;

                        if (item.machineBelongTo == "Wimarasys")
                        {
                            check.IsWimerasys      = 1;
                            check.MachineModelType = 99;
                        }
                        else
                        {
                            if (item.controllerType == "FANUC")
                            {
                                check.ControllerType   = "FANUC";
                                check.MachineModelType = 1;
                            }
                            else if (item.controllerType == "DL")
                            {
                                check.ControllerType   = "DL";
                                check.IsPcb            = 1;
                                check.MachineModelType = 4;
                            }
                        }

                        check.IsNormalWc        = 0;
                        check.CreatedOn         = DateTime.Now;
                        check.InsertedOn        = Convert.ToString(DateTime.Now);
                        check.InsertedBy        = 1;
                        check.EnableLockLogic   = 0;
                        check.ServerTabFlagSync = 0;
                        check.ServerTabCheck    = 0;
                        check.IsShiftWise       = 0;
                        check.IsDeleted         = 0;
                        check.IsDlversion       = 0;
                        db.SaveChanges();

                        obj.isStatus = true;
                        obj.response = ResourceResponse.UpdatedSuccessMessage;
                    }
                }
            }
            catch (Exception e)
            {
                log.Error(e); if (e.InnerException != null)
                {
                    log.Error(e.InnerException.ToString());
                }
                obj.isStatus = false;
                obj.response = ResourceResponse.FailureMessage;
            }
            return(obj);
        }
        /// <summary>
        /// Add And Update Machine Master
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public CommonResponse AddAndUpdateMachineMaster(AddUpdateMachine data)
        {
            CommonResponse obj = new CommonResponse();

            try
            {
                var check = db.UnitworkccsTblmachinedetails.Where(m => m.MachineId == data.machineId).FirstOrDefault();
                if (check == null)
                {
                    try
                    {
                        UnitworkccsTblmachinedetails tblmachinedetails = new UnitworkccsTblmachinedetails();
                        tblmachinedetails.PlantId            = data.plantId;
                        tblmachinedetails.ShopId             = data.shopId;
                        tblmachinedetails.CellId             = data.cellId;
                        tblmachinedetails.Ipaddress          = data.ipAddress;
                        tblmachinedetails.MachineName        = data.machineNo;
                        tblmachinedetails.MachineDisplayName = data.machineNo;
                        tblmachinedetails.MachinePockets     = Convert.ToInt32(data.noOfToolStation);
                        tblmachinedetails.Mmmgroup           = data.mmmGroup;
                        tblmachinedetails.MachineDescription = data.machineName;
                        tblmachinedetails.DedicatedOrShared  = data.dedicatedOrShared;
                        tblmachinedetails.PrimaryOrSecondary = data.primaryOrSecondary;
                        tblmachinedetails.MachineCategoryId  = data.machineCategoryId;
                        tblmachinedetails.MachineMake        = Convert.ToString(data.makeId);
                        tblmachinedetails.MachineSpec        = data.machineSpec;
                        tblmachinedetails.ChuckOrRodSize     = Convert.ToInt32(data.chuckOrRodSize);
                        tblmachinedetails.TallStockAvailId   = Convert.ToInt32(data.tallStockAvailibilityId);
                        tblmachinedetails.NoOfAxisId         = Convert.ToInt32(data.noOfAxisId);
                        tblmachinedetails.TableSize          = data.tableSize;
                        tblmachinedetails.PalletId           = Convert.ToInt32(data.palletId);
                        tblmachinedetails.Category           = data.criticalOrNonCritical;

                        if (data.machineBelongTo == "Wimarasys")
                        {
                            tblmachinedetails.IsWimerasys      = 1;
                            tblmachinedetails.MachineModelType = 99;
                        }
                        else
                        {
                            if (data.controllerType == "FANUC")
                            {
                                tblmachinedetails.ControllerType   = "FANUC";
                                tblmachinedetails.MachineModelType = 1;
                            }
                            else if (data.controllerType == "DL")
                            {
                                tblmachinedetails.ControllerType   = "DL";
                                tblmachinedetails.IsPcb            = 1;
                                tblmachinedetails.MachineModelType = 4;
                            }
                        }

                        tblmachinedetails.IsNormalWc        = 0;
                        tblmachinedetails.CreatedOn         = DateTime.Now;
                        tblmachinedetails.InsertedOn        = Convert.ToString(DateTime.Now);
                        tblmachinedetails.InsertedBy        = 1;
                        tblmachinedetails.EnableLockLogic   = 0;
                        tblmachinedetails.ServerTabFlagSync = 0;
                        tblmachinedetails.ServerTabCheck    = 0;
                        tblmachinedetails.IsShiftWise       = 0;
                        tblmachinedetails.IsDeleted         = 0;
                        tblmachinedetails.IsDlversion       = 0;
                        db.UnitworkccsTblmachinedetails.Add(tblmachinedetails);
                        db.SaveChanges();

                        obj.isStatus = true;
                        obj.response = ResourceResponse.AddedSuccessMessage;
                    }
                    catch (Exception e)
                    {
                        log.Error(e); if (e.InnerException != null)
                        {
                            log.Error(e.InnerException.ToString());
                        }
                        obj.isStatus = false;
                        obj.response = ResourceResponse.FailureMessage;
                    }
                }
                else
                {
                    check.PlantId            = data.plantId;
                    check.ShopId             = Convert.ToInt32(data.shopId);
                    check.CellId             = Convert.ToInt32(data.cellId);
                    check.Ipaddress          = data.ipAddress;
                    check.MachineName        = data.machineNo;
                    check.MachineDisplayName = data.machineName;
                    check.MachinePockets     = Convert.ToInt32(data.noOfToolStation);
                    check.Mmmgroup           = data.mmmGroup;
                    check.MachineDescription = data.machineName;
                    check.DedicatedOrShared  = data.dedicatedOrShared;
                    check.PrimaryOrSecondary = data.primaryOrSecondary;
                    check.MachineCategoryId  = data.machineCategoryId;
                    check.MachineMake        = Convert.ToString(data.makeId);
                    check.MachineSpec        = data.machineSpec;
                    check.ChuckOrRodSize     = Convert.ToInt32(data.chuckOrRodSize);
                    check.TallStockAvailId   = Convert.ToInt32(data.tallStockAvailibilityId);
                    check.NoOfAxisId         = Convert.ToInt32(data.noOfAxisId);
                    check.TableSize          = data.tableSize;
                    check.PalletId           = Convert.ToInt32(data.palletId);
                    check.Category           = data.criticalOrNonCritical;

                    if (data.machineBelongTo == "Wimarasys")
                    {
                        check.IsWimerasys      = 1;
                        check.MachineModelType = 99;
                    }
                    else
                    {
                        if (data.controllerType == "FANUC")
                        {
                            check.ControllerType   = "FANUC";
                            check.MachineModelType = 1;
                        }
                        else if (data.controllerType == "DL")
                        {
                            check.ControllerType   = "DL";
                            check.IsPcb            = 1;
                            check.MachineModelType = 4;
                        }
                    }

                    check.IsNormalWc        = 0;
                    check.CreatedOn         = DateTime.Now;
                    check.InsertedOn        = Convert.ToString(DateTime.Now);
                    check.InsertedBy        = 1;
                    check.EnableLockLogic   = 0;
                    check.ServerTabFlagSync = 0;
                    check.ServerTabCheck    = 0;
                    check.IsShiftWise       = 0;
                    check.IsDeleted         = 0;
                    check.IsDlversion       = 0;
                    db.SaveChanges();

                    obj.isStatus = true;
                    obj.response = ResourceResponse.UpdatedSuccessMessage;
                }
            }
            catch (Exception e)
            {
                log.Error(e); if (e.InnerException != null)
                {
                    log.Error(e.InnerException.ToString());
                }
                obj.isStatus = false;
                obj.response = ResourceResponse.FailureMessage;
            }
            return(obj);
        }