コード例 #1
0
        public void SetDocShift(string docId)
        {
            random = new Random();
            int[] hours    = { 0, 4, 8, 12, 16, 20 };
            var   weekDays = new Days_of_week().getAllRecords();

            foreach (var day in weekDays)
            {
                var tu         = random.Next(0, 5);
                int pos        = hours[tu];
                var doc_in_day = new Shift_table().getAllRecords().Where(i => i.Day_week_id == day.Id).ToList();
                if (doc_in_day.Count == 0)
                {
                    new Shift_table().insert(docId, day.Id, (pos).ToString(), (pos + 4).ToString());
                }
                else
                {
                    foreach (var period in doc_in_day)
                    {
                        var doc = period.getAllRecords().Where(i => i.Day_week_id == day.Id && i.Start_time == pos.ToString()).FirstOrDefault();
                        if (doc == null)
                        {
                            new Shift_table().insert(docId, day.Id, (pos).ToString(), (pos + 4).ToString());
                            break;
                        }
                        else
                        {
                            var docDetails    = new Doctor_view().Load_record_with(Doctor_view_support.Column.Id, Doctor_view_support.LogicalOperator.EQUAL_TO, doc.Doc_id);
                            var newDoctDetail = new Doctor_view().Load_record_with(Doctor_view_support.Column.Id, Doctor_view_support.LogicalOperator.EQUAL_TO, docId);
                            if (docDetails.Speciality != newDoctDetail.Speciality)
                            {
                                doc.insert(docId, day.Id, (pos).ToString(), (pos + 4).ToString());
                                break;
                            }
                            else
                            {
                                var availHours = hours.ToList().Where(o => !doc_in_day.Any(b => b.Id == o.ToString())).ToList();
                                pos = availHours[new Random().Next(0, availHours.Count)];
                                doc.insert(docId, day.Id, (pos).ToString(), (pos + 4).ToString());
                                break;
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        public DataTable GetTable(List <string> docOfTheDay, bool links)
        {
            var enc = new Encryption()
            {
                Key = "&*>w!@~g"
            };
            DataTable          table        = new DataTable("shift");
            List <Shift_table> shift_Tables = new Shift_table().getAllRecords();

            //table.Columns.Add("#");
            table.Columns.Add("Day");
            table.Columns.Add("PERIOD1"); //0-4
            table.Columns.Add("PERIOD2"); //4-8
            table.Columns.Add("PERIOD3"); //8-12
            table.Columns.Add("PERIOD4"); //12-16
            table.Columns.Add("PERIOD5"); //16-20
            table.Columns.Add("PERIOD6"); //20-24
            DataColumn[] keyColumns = new DataColumn[1];
            keyColumns[0]    = table.Columns["Day"];
            table.PrimaryKey = keyColumns;
            var appCounter = 5;

            for (int i = 0; i < 7; i++)
            {
                DataRow row        = table.NewRow();
                var     daysInWeek = DateTime.Now.AddDays(i % 7);
                var     DayList    = new Days_of_week().getAllRecords().Where(day => day.Day.ToLower() == daysInWeek.DayOfWeek.ToString().ToLower()).First();
                for (int j = 0, r = 1; j <= 20; j += 4, r++)
                {
                    var docId = string.Empty;
                    //row[0] = (i+1);
                    row[0] = DayList.Short_name.ToUpper();
                    var shift_Table = shift_Tables.Where(shift => shift.Day_week_id == DayList.Id && shift.Start_time == j.ToString()).ToList();
                    if (shift_Table == null)
                    {
                        row[r] = "";
                    }
                    else
                    {
                        foreach (var individual in shift_Table)
                        {
                            if (docOfTheDay.Contains(individual.Doc_id))
                            {
                                var apps       = new Appointment().getAllRecords().Where(app => app.Doctor_id == individual.Doc_id && app.Schedule_date == daysInWeek.ToString("yyyy-MM-dd")).ToList();
                                var docDetails = new Doctor_view().getAllRecords().Where(doc => doc.Id == individual.Doc_id).First();
                                var linkString = string.Empty;
                                if (links)
                                {
                                    linkString = $"<a href='../../home?id={enc.EncryptString(docDetails.Id, "&*>w!@~g")}&date={daysInWeek.ToLongDateString()}'>{docDetails.Name}</a>";
                                }
                                else
                                {
                                    linkString = $"<h4>Shift</h4>";
                                }
                                row[r] = linkString;
                            }
                            else
                            {
                                row[r] = "";
                            }
                        }
                    }
                }
                table.Rows.Add(row);
                //var c = table.Rows[i][3].ToString();
            }
            return(table);
        }