예제 #1
0
        public void Configure(AlarmDetails alarmDetails)
        {
            this.AlarmDetails = alarmDetails;

            if (AlarmDetails != null)
            {
                AlarmTimeLabel.Text        = AlarmDetails.Time.GetTimeString();
                MedicineNameLabel.Text     = AlarmDetails.Medicine.Name;
                MedicineStrengthLabel.Text = AlarmDetails.Medicine.Strength;
                AlarmDoneCheck.Selected    = AlarmDetails.Status == AlarmStatus.Completed;

                if (AlarmDetails.Status == AlarmStatus.Completed)
                {
                    Overlay.Hidden = false;
                    AlarmDoneCheck.UserInteractionEnabled = false;
                    AlarmDoneCheck.SelectionChanged      -= AlarmDoneCheck_SelectionChanged;
                }
                else
                {
                    Overlay.Hidden = true;
                    AlarmDoneCheck.UserInteractionEnabled = true;
                    AlarmDoneCheck.SelectionChanged      -= AlarmDoneCheck_SelectionChanged;
                    AlarmDoneCheck.SelectionChanged      += AlarmDoneCheck_SelectionChanged;
                }

                if (AlarmDetails.IsNextAlarm)
                {
                    this.AddBorder(Colors.DashboardAlarmBorderColor, 12);
                }
                else
                {
                    this.AddBorder(UIColor.White, 12);
                }
            }
        }
예제 #2
0
        public async Task <Response <List <AlarmDetails> > > GetAlarms(DateTime date)
        {
            var dataHandler = ApplicationCore.Container.Resolve <IMedicineAPI>();
            var response    = await dataHandler.GetAlarms(date.ToString("yyyy-MM-dd"));

            if (response.IsSuccess)
            {
                var result = new List <AlarmDetails>();

                AlarmDetails nextAlarm     = null;
                long         minDifference = long.MaxValue;

                if (response.Result != null)
                {
                    foreach (var medicineReminder in response.Result)
                    {
                        if (medicineReminder.Alarms != null)
                        {
                            foreach (var alarm in medicineReminder.Alarms)
                            {
                                var alarmDetails = new AlarmDetails(alarm, medicineReminder.Context);
                                result.Add(alarmDetails);

                                var timeDifference = alarmDetails.Time.Ticks - DateTime.Now.Ticks;
                                if (timeDifference < minDifference && timeDifference > 0)
                                {
                                    minDifference = timeDifference;
                                    nextAlarm     = alarmDetails;
                                }
                            }
                        }
                    }

                    if (nextAlarm != null && date.Date == DateTime.Now.Date)
                    {
                        nextAlarm.IsNextAlarm = true;
                    }

                    result.Sort((x, y) => x.Time.CompareTo(y.Time));
                }

                return(Response <List <AlarmDetails> > .GetSuccessResponse(result));
            }
            else
            {
                return(new Response <List <AlarmDetails> >(response.ResponseInfo, null));
            }
        }
        public async Task <Response> MarkAlarmAsComplete(AlarmDetails alarm)
        {
            if (alarm != null)
            {
                Loading();
                var response = await alarm.MarkAlarmAsComplete();

                HideLoading();
                if (!response.IsSuccess)
                {
                    RaiseError(response.ResponseInfo);
                }
                return(response);
            }
            else
            {
                return(Response.GetGenericClientErrorResponse());
            }
        }
        internal static appData GetMachineConnectData(DateTime dateVal)
        {
            SqlConnection conn             = ConnectionManager.GetConnection();
            DataTable     dt               = new DataTable();
            DataTable     dtMachine        = new DataTable();
            DataTable     dtDashboard      = new DataTable();
            DataTable     dtPartCount      = new DataTable();
            DataTable     dtTimes          = new DataTable();
            DataTable     dtStoppages      = new DataTable();
            DataTable     dtAlarmsDatails  = new DataTable();
            DataTable     dtAlarmsSummary  = new DataTable();
            DataTable     dtAlarmsSolution = new DataTable();

            appData appData = new appData();

            appData.Shifts         = new List <Shift>();
            appData.PlantMachine   = new List <PlantMachines>();
            appData.AlarmsSolution = new List <AlarmSolution>();
            var ss = dateVal.ToString("yyyy-MM-dd");

            try
            {
                var cmd = new SqlCommand("[dbo].[FocasWeb_ViewShift&HourwiseSummary]", conn);
                cmd.CommandType    = System.Data.CommandType.StoredProcedure;
                cmd.CommandTimeout = 120;
                cmd.Parameters.AddWithValue("@Date", dateVal.ToString("yyyy-MM-dd"));//dateVal);
                SqlDataReader rdr = cmd.ExecuteReader();
                if (rdr.HasRows)
                {
                    while (rdr.Read())
                    {
                        int   shiftId = 0;
                        Shift shift   = new Shift();
                        if (int.TryParse(rdr["ShiftID"].ToString(), out shiftId))
                        {
                            shift.ShiftId = shiftId;
                        }
                        shift.ShiftName = rdr["ShiftName"].ToString();
                        appData.Shifts.Add(shift);
                    }
                    rdr.NextResult();
                    while (rdr.Read())
                    {
                        int           plantId       = 0;
                        PlantMachines plantMachines = new PlantMachines();
                        if (int.TryParse(rdr["PlantCode"].ToString(), out plantId))
                        {
                            plantMachines.PlantID = plantId;
                        }
                        plantMachines.PlantName = rdr["Plantid"].ToString();
                        appData.PlantMachine.Add(plantMachines);
                    }
                    rdr.NextResult();

                    //--MachineInformation---
                    dtMachine.Load(rdr);
                    //---Dashboard Information-----
                    dtDashboard.Load(rdr);
                    //-----PartCount Information---
                    dtPartCount.Load(rdr);

                    dtTimes.Load(rdr);

                    dtStoppages.Load(rdr);

                    dtAlarmsDatails.Load(rdr);

                    dtAlarmsSummary.Load(rdr);

                    //dtAlarmsSolution.Load(rdr);

                    if (dtMachine.Rows.Count > 0)
                    {
                        for (int i = 0; i < appData.PlantMachine.Count; i++)
                        {
                            appData.PlantMachine[i].Machines = new List <Machine>();
                            foreach (DataRow item in dtMachine.Select("PlantID = '" + appData.PlantMachine[i].PlantName + "'"))
                            {
                                int     machineId = 0;
                                Machine machine   = new Machine();
                                if (int.TryParse(item["MCInterface"].ToString(), out machineId))
                                {
                                    machine.MachineID = machineId;//Convert.ToInt32(item["MCInterface"].ToString());
                                }
                                machine.MachineName = item["MachineId"].ToString();
                                machine.LastProgram = item["RunningPart"].ToString();
                                machine.Downtime    = item["Stoppages"].ToString();
                                machine.Status      = item["McStatus"].ToString();
                                machine.Color       = item["color"].ToString();
                                if (int.TryParse(item["PartsCount"].ToString(), out machineId))
                                {
                                    machine.PartsCount = machineId;// int.Parse(item["PartsCount"].ToString());
                                }
                                machine.MachineMTB = item["MachineMTB"].ToString().ToUpper();

                                appData.PlantMachine[i].Machines.Add(machine);
                            }
                        }

                        appData.appDataList = new List <AppDataList>();
                        AppDataList appdataDay = new AppDataList();
                        appdataDay.Key     = dateVal.ToString("yyyy-MM-dd");
                        appdataDay.DayData = new List <DayData>();

                        for (int i = 0; i < appData.PlantMachine.Count; i++)
                        {
                            foreach (Machine item in appData.PlantMachine[i].Machines)
                            {
                                DayData dayData1 = new DayData();
                                dayData1.DataDate    = DateTime.Now.Date;
                                dayData1.MachineID   = item.MachineID;
                                dayData1.MachineName = item.MachineName;
                                dayData1.PlantID     = appData.PlantMachine[i].PlantID;
                                dayData1.PlantName   = appData.PlantMachine[i].PlantName;

                                dayData1.PartsCountData     = new List <PartsCountData>();
                                dayData1.PartCountChartData = new List <PartCountChartData>();

                                dayData1.TimesData      = new List <TimesData>();
                                dayData1.TimesChartData = new List <TimesChartData>();

                                dayData1.StoppagesData = new List <StoppagesData>();
                                dayData1.AlarmsDetails = new List <AlarmData>();
                                dayData1.AlarmsSummary = new List <AlarmData>();

                                dayData1.DashboardData = new DashboardData();
                                dayData1.DashboardData.DashboardDetails = new List <DashboardDetails>();
                                foreach (DataRow item1 in dtDashboard.Select("PlantID = '" + appData.PlantMachine[i].PlantName + "' AND Machineid = '" + item.MachineName + "'"))
                                {
                                    DashboardDetails dashboardDetails = new DashboardDetails();
                                    dashboardDetails.NavId         = item1["NavID"].ToString();
                                    dashboardDetails.ColHeaderText = item1["DisplayName"].ToString();

                                    dashboardDetails.ShiftData = new List <string>();
                                    foreach (var shifts in appData.Shifts)
                                    {
                                        dashboardDetails.ShiftData.Add(item1[shifts.ShiftName].ToString());
                                    }

                                    //dashboardDetails.ShiftData.Add(item1["A"].ToString());
                                    //dashboardDetails.ShiftData.Add(item1["B"].ToString());
                                    //dashboardDetails.ShiftData.Add(item1["C"].ToString());


                                    if (item1["NavID"].ToString().Equals("menu.partsCount", StringComparison.OrdinalIgnoreCase))
                                    {
                                        dayData1.DashboardData.PartCount = item1["DayValue"].ToString();
                                    }
                                    else if (item1["NavID"].ToString().Equals("menu.downtime", StringComparison.OrdinalIgnoreCase))
                                    {
                                        dayData1.DashboardData.DownTime = item1["DayValue"].ToString();
                                    }
                                    dayData1.DashboardData.DashboardDetails.Add(dashboardDetails);
                                }

                                dayData1.PartsCountData = new List <PartsCountData>();

                                //for each shift and machine fill the part count data
                                foreach (Shift shift in appData.Shifts)
                                {
                                    PartsCountData     partCountData      = new PartsCountData();
                                    PartCountChartData partCountChartData = new PartCountChartData();
                                    partCountData.ShiftId   = partCountChartData.ShiftId = shift.ShiftId;
                                    partCountData.ShiftName = partCountChartData.ShiftName = shift.ShiftName;

                                    partCountData.details        = new List <PartsCountDetails>();
                                    partCountChartData.ChartData = new Chart <PartsCountSeries>();

                                    partCountChartData.ChartData.categories = new List <string>();
                                    partCountChartData.ChartData.series     = new List <PartsCountSeries>();

                                    var datarow = dtPartCount.Select("PlantID = '" + appData.PlantMachine[i].PlantName + "' AND Machineid = '" + item.MachineName + "' AND Shiftid = " + shift.ShiftId);

                                    //----for part count chart----START--
                                    List <string> programs = datarow.Select(r => r["ProgramID"].ToString()).Distinct().ToList();
                                    programs.Remove("");
                                    List <int> id = datarow.Select(rr => Convert.ToInt32(rr["HourID"].ToString())).Distinct().ToList();
                                    foreach (string prog in programs)
                                    {
                                        List <int> dataSeries = new List <int>();
                                        id.ForEach(o => dataSeries.Add(0));//dataSeries.Add(int.MinValue));

                                        PartsCountSeries prog1 = new PartsCountSeries()
                                        {
                                            name = prog, data = dataSeries
                                        };
                                        partCountChartData.ChartData.series.Add(prog1);
                                        foreach (DataRow row in datarow.Where(r => r["ProgramID"].ToString() == prog))
                                        {
                                            int hourId = Int32.Parse(row["HourID"].ToString()) - 1;
                                            dataSeries[hourId] = Int32.Parse(row["PartCount"].ToString());
                                        }
                                    }
                                    //----for part count chart----END--
                                    foreach (DataRow item1 in datarow)
                                    {
                                        PartsCountDetails partShift = new PartsCountDetails();
                                        partShift.HourText   = Convert.ToDateTime(item1["HourStart"].ToString()).ToString("htt").ToLower() + "-" + Convert.ToDateTime(item1["HourEnd"].ToString()).ToString("htt").ToLower();
                                        partShift.Program    = item1["ProgramID"].ToString();
                                        partShift.PartsCount = item1["PartCount"].ToString();
                                        partCountData.details.Add(partShift);

                                        //----for part count chart------
                                        if (partCountChartData.ChartData.categories.Contains(partShift.HourText) == false)
                                        {
                                            partCountChartData.ChartData.categories.Add(partShift.HourText);
                                        }
                                    }
                                    dayData1.PartsCountData.Add(partCountData);
                                    dayData1.PartCountChartData.Add(partCountChartData);
                                }

                                dayData1.TimesData = new List <TimesData>();
                                //for each shift and machine fill the times data
                                foreach (Shift shift in appData.Shifts)
                                {
                                    TimesData      timeData  = new TimesData();
                                    TimesChartData timeChart = new TimesChartData();
                                    timeData.ShiftId   = timeChart.ShiftId = shift.ShiftId;
                                    timeData.ShiftName = timeChart.ShiftName = shift.ShiftName;

                                    timeData.details = new List <TimesDetails>();

                                    timeChart.ChartData = new Chart <TimeDataSeries>();
                                    TimeDataSeries power = new TimeDataSeries()
                                    {
                                        name = "Power On Time", data = new List <int>()
                                    };
                                    TimeDataSeries operating = new TimeDataSeries()
                                    {
                                        name = "Operating Time", data = new List <int>()
                                    };
                                    TimeDataSeries cutting = new TimeDataSeries()
                                    {
                                        name = "CuttingTime", data = new List <int>()
                                    };

                                    timeChart.ChartData.categories = new List <string>();
                                    timeChart.ChartData.series     = new List <TimeDataSeries>();
                                    timeChart.ChartData.series.Add(power);
                                    timeChart.ChartData.series.Add(operating);
                                    timeChart.ChartData.series.Add(cutting);



                                    foreach (DataRow item1 in dtTimes.Select("PlantID = '" + appData.PlantMachine[i].PlantName + "' AND Machineid = '" + item.MachineName + "' AND Shiftid = " + shift.ShiftId))
                                    {
                                        TimesDetails timeShift = new TimesDetails();

                                        timeShift.HourText = Convert.ToDateTime(item1["HourStart"].ToString()).ToString("htt").ToLower() + "-" + Convert.ToDateTime(item1["HourEnd"].ToString()).ToString("htt").ToLower();

                                        timeShift.PowerNo   = item1["PowerOntime"].ToString();
                                        timeShift.Operating = item1["OperatingTime"].ToString();
                                        timeShift.Cutting   = item1["CuttingTime"].ToString();
                                        timeData.TotalPOT   = item1["TotalPOT"].ToString();
                                        timeData.TotalOT    = item1["TotalOT"].ToString();
                                        timeData.TotalCT    = item1["TotalCT"].ToString();
                                        timeData.details.Add(timeShift);

                                        //for chart
                                        timeChart.ChartData.categories.Add(timeShift.HourText);
                                        power.data.Add(int.Parse(item1["PowerOntimeInt"].ToString()));
                                        operating.data.Add(int.Parse(item1["OperatingTimeInt"].ToString()));
                                        cutting.data.Add(int.Parse(item1["CuttingTimeInt"].ToString()));
                                    }
                                    dayData1.TimesData.Add(timeData);
                                    dayData1.TimesChartData.Add(timeChart);
                                }

                                dayData1.StoppagesData = new List <StoppagesData>();
                                //for each shift and machine fill the stoppages data
                                foreach (Shift shift in appData.Shifts)
                                {
                                    StoppagesData stoppageData = new StoppagesData();
                                    stoppageData.ShiftId   = shift.ShiftId;
                                    stoppageData.ShiftName = shift.ShiftName;
                                    stoppageData.details   = new List <StoppagesDetails>();
                                    foreach (DataRow item1 in dtStoppages.Select("PlantID = '" + appData.PlantMachine[i].PlantName + "' AND Machineid = '" + item.MachineName + "' AND Shiftid = " + shift.ShiftId))
                                    {
                                        StoppagesDetails stoppageShift = new StoppagesDetails();
                                        if (string.IsNullOrEmpty(item1["BatchStart"].ToString()))
                                        {
                                            stoppageShift.Fromtime = null;// Convert.ToDateTime(item1["BatchStart"].ToString());
                                        }
                                        else
                                        {
                                            stoppageShift.Fromtime = Convert.ToDateTime(item1["BatchStart"].ToString());
                                        }
                                        if (string.IsNullOrEmpty(item1["BatchEnd"].ToString()))
                                        {
                                            stoppageShift.ToTime = null;// Convert.ToDateTime(item1["BatchEnd"].ToString());
                                        }
                                        else
                                        {
                                            stoppageShift.ToTime = Convert.ToDateTime(item1["BatchEnd"].ToString());
                                        }
                                        stoppageShift.Duration = item1["Stoppagetime"].ToString();
                                        stoppageData.details.Add(stoppageShift);
                                    }
                                    dayData1.StoppagesData.Add(stoppageData);
                                }

                                //-----for each Alarm Details--------------------
                                foreach (Shift shift in appData.Shifts)
                                {
                                    AlarmData alarmData = new AlarmData();
                                    alarmData.ShiftId   = shift.ShiftId;
                                    alarmData.ShiftName = shift.ShiftName;
                                    alarmData.details   = new List <AlarmDetails>();
                                    foreach (DataRow item1 in dtAlarmsDatails.Select("PlantID = '" + appData.PlantMachine[i].PlantName + "' AND Machineid = '" + item.MachineName + "' AND Shiftid = " + shift.ShiftId))
                                    {
                                        int          alarm        = 0;
                                        AlarmDetails alarmDetails = new AlarmDetails();
                                        if (int.TryParse(item1["AlarmNo"].ToString(), out alarm))
                                        {
                                            alarmDetails.alarmNo = alarm;
                                        }
                                        if (string.IsNullOrEmpty(item1["Fromtime"].ToString()))
                                        {
                                            alarmDetails.StartTime = null;// Convert.ToDateTime(item1["Fromtime"].ToString());
                                        }
                                        else
                                        {
                                            alarmDetails.StartTime = Convert.ToDateTime(item1["Fromtime"].ToString());
                                        }

                                        if (string.IsNullOrEmpty(item1["Totime"].ToString()))
                                        {
                                            alarmDetails.EndTime = null;// Convert.ToDateTime(item1["Totime"].ToString());
                                        }
                                        else
                                        {
                                            alarmDetails.EndTime = Convert.ToDateTime(item1["Totime"].ToString());
                                        }
                                        alarmDetails.Duration = item1["Duration"].ToString();
                                        alarmDetails.Message  = item1["AlarmMSG"].ToString();
                                        if (int.TryParse(item1["Shiftcount"].ToString(), out alarm))
                                        {
                                            alarmData.shiftCount = alarm;
                                        }
                                        alarmData.TotalDuration = item1["Totalduration"].ToString();
                                        alarmData.details.Add(alarmDetails);
                                    }
                                    dayData1.AlarmsDetails.Add(alarmData);
                                }
                                //---for each Alarm Summary--------------
                                foreach (Shift shift in appData.Shifts)
                                {
                                    AlarmData alarmData = new AlarmData();
                                    alarmData.ShiftId   = shift.ShiftId;
                                    alarmData.ShiftName = shift.ShiftName;
                                    alarmData.details   = new List <AlarmDetails>();
                                    foreach (DataRow item1 in dtAlarmsSummary.Select("PlantID = '" + appData.PlantMachine[i].PlantName + "' AND Machineid = '" + item.MachineName + "' AND Shiftid = " + shift.ShiftId))
                                    {
                                        int          alarm        = 0;
                                        AlarmDetails alarmDetails = new AlarmDetails();
                                        if (int.TryParse(item1["AlarmNo"].ToString(), out alarm))
                                        {
                                            alarmDetails.alarmNo = alarm;
                                        }
                                        if (string.IsNullOrEmpty(item1["Lastseen"].ToString()))
                                        {
                                            alarmDetails.LastSeen = null;// Convert.ToDateTime(item1["Lastseen"].ToString());
                                        }
                                        else
                                        {
                                            alarmDetails.LastSeen = Convert.ToDateTime(item1["Lastseen"].ToString());
                                        }
                                        alarmDetails.Message = item1["AlarmMSG"].ToString();
                                        if (int.TryParse(item1["NoOfOccurences"].ToString(), out alarm))
                                        {
                                            alarmDetails.NoOfOcc = alarm;
                                        }
                                        alarmData.details.Add(alarmDetails);
                                    }
                                    dayData1.AlarmsSummary.Add(alarmData);
                                }
                                appdataDay.DayData.Add(dayData1);
                            }
                        }
                        appData.appDataList.Add(appdataDay);
                    }
                    //if (dtAlarmsSolution.Columns.Count > 0)
                    //{
                    //    foreach (DataRow item in dtAlarmsSolution.Rows)
                    //    {
                    //        int slNo = 0;
                    //        AlarmSolution alarmSolution = new AlarmSolution();
                    //        if (int.TryParse(item["Slno"].ToString(), out slNo))
                    //            alarmSolution.SlNo = slNo;
                    //        if (int.TryParse(item["AlarmNo"].ToString(), out slNo))
                    //            alarmSolution.AlarmNo = slNo;
                    //        alarmSolution.ImageName = item["FilePath"].ToString();
                    //        alarmSolution.Description = item["Description"].ToString();
                    //        alarmSolution.Cause = item["Cause"].ToString();
                    //        alarmSolution.Solution = item["Solution"].ToString();
                    //        alarmSolution.MTB = item["MTB"].ToString().ToUpper();
                    //        appData.AlarmsSolution.Add(alarmSolution);
                    //    }
                    //}
                }
                if (!rdr.IsClosed)
                {
                    rdr.Close();
                }
            }
            catch (Exception ex)
            {
                Logger.WriteErrorLog(ex.ToString());
            }

            finally
            {
                conn.Close();
            }
            return(appData);
        }