Esempio n. 1
0
            public FCMPushNotification SendNotification(string title, string message, string topic, string deviceId)
            {
                FCMPushNotification result = new FCMPushNotification();

                try
                {
                    result.Successful = true;
                    result.Error      = null;
                    string serverKey  = Server_Key;
                    string senderId   = sender_Id;
                    var    requestUri = "https://fcm.googleapis.com/fcm/send";

                    RestClient  client  = new RestClient(requestUri);
                    RestRequest request = new RestRequest()
                    {
                        Method        = Method.POST,
                        RequestFormat = DataFormat.Json
                    };
                    request.AddHeader("Content-Type", "application/json");
                    request.AddHeader("Authorization", $"key={serverKey}");
                    request.AddHeader("Sender", $"id={senderId}");

                    var data = new
                    {
                        to           = deviceId,
                        priority     = "high",
                        notification = new
                        {
                            title = title,
                            body  = message,
                            show_in_foreground = "true",
                            icon = "myicon"
                        }
                    };
                    request.AddBody(data);
                    IRestResponse response         = client.Execute(request);
                    var           content          = response.Content;
                    var           resultStatusCode = response.StatusCode;
                    //return result;
                    #region WeRequest Implementation
                    //WebRequest webRequest = WebRequest.Create(requestUri);
                    //webRequest.Method = "POST";
                    //webRequest.Headers.Add(string.Format("Authorization: key={0}", serverKey));
                    //webRequest.Headers.Add(string.Format("Sender: id={0}", senderId));
                    //webRequest.ContentType = "application/json";
                    //var data = new
                    //{
                    //    to = deviceId, // this if you want to test for a single device
                    //                   //to = "/topics/" + _topic, // this is for topic
                    //    priority = "high",
                    //    notification = new
                    //    {
                    //        title = _title,
                    //        body = _message,
                    //        show_in_foreground = "True",
                    //        icon = "myicon"
                    //    }
                    //};
                    //var serializer = new JavaScriptSerializer();
                    //var json = serializer.Serialize(data);
                    //Byte[] byteArray = Encoding.UTF8.GetBytes(json);
                    //webRequest.ContentLength = byteArray.Length;
                    //using (Stream dataStream = webRequest.GetRequestStream())
                    //{
                    //    dataStream.Write(byteArray, 0, byteArray.Length);
                    //    using (WebResponse webResponse = webRequest.GetResponse())
                    //    {
                    //        using (Stream dataStreamResponse = webResponse.GetResponseStream())
                    //        {
                    //            using (StreamReader tReader = new StreamReader(dataStreamResponse))
                    //            {
                    //                String sResponseFromServer = tReader.ReadToEnd();
                    //                result.Response = sResponseFromServer;
                    //            }
                    //        }
                    //    }
                    //}
                    #endregion
                }
                catch (Exception ex)
                {
                    result.Successful = false;
                    result.Response   = null;
                    result.Error      = ex;
                }
                return(result);
            }
        public object SaveAttendance(AttendanceParameterscs atteobj)
        {
            SchoolMainContext db = new ConcreateContext().GetContext(atteobj.Userid, atteobj.Password);

            if (db == null)
            {
                return(new Results()
                {
                    IsSuccess = false, Message = "Invalid User"
                });
            }

            TBLATTENDENCEMASTER objmster  = new TBLATTENDENCEMASTER();
            TBLATTENDENCE       objDetail = new TBLATTENDENCE();


            var checkatt = db.Vw_ATTENDANCECHECK.FirstOrDefault(r => r.DIVISIONID == atteobj.DIVISIONID && r.ATTEDANCEDATE == atteobj.ATTEDANCEDATE);

            //Duplicate Attendance Check
            if (checkatt == null)
            {
                try
                {
                    objmster.ATTEDANCEDATE = atteobj.ATTEDANCEDATE;

                    objmster.DIVISIONID    = atteobj.DIVISIONID;
                    objmster.DISPLAY       = 1;
                    objmster.EDUCATIONYEAR = "2018-2019";
                    var std = db.vw_FETCHSTANDARDBYDIVISION.Where(r => r.DIVISIONID == atteobj.DIVISIONID && r.DISPLAY == 1 && r.ACADEMICYEAR == "2018-2019").ToList();

                    objmster.STANDARDID = Convert.ToInt32(std[0].STANDARDID);
                    objmster.CREATEDON  = DateTime.Now;

                    objmster.CREATEDID = atteobj.Userid;

                    db.TBLATTENDENCEMASTERs.Add(objmster);
                    db.SaveChanges();


                    //TBLNOTIFICATION objnotification = new TBLNOTIFICATION();
                    //objnotification.TITLE = "Daily Attendance";
                    //objnotification.NOTIFICATIONDATE = DateTime.Now;
                    //objnotification.NOTIFICATIONTIME = DateTime.Now.ToString("h:mm tt");
                    //objnotification.DIVISIONID = atteobj.DIVISIONID;
                    //objnotification.ACADEMICYEAR = "2018-2019";
                    //objnotification.NOTIFICATIONTYPE = "Attendance";
                    //db.TBLNOTIFICATIONs.Add(objnotification);
                    //db.SaveChanges();

                    string   absentno = atteobj.Absentno;
                    string[] sbno     = absentno.Split(',');
                    objDetail.ATTEDANCEMID = objmster.ATTEDANCEMID;
                    for (int i = 0; i < sbno.Length; i++)
                    {
                        string abno = sbno[i].ToString();

                        int rollno = Convert.ToInt32(abno);

                        var getstudent = db.VIEWGETSTUDENTATTs.Where(r => r.DIVISIONID == atteobj.DIVISIONID && r.ROLL_NO == rollno).ToList();
                        if (getstudent.Count == 0)
                        {
                            return(new Results()
                            {
                                IsSuccess = false, Message = "No students found for this division "
                            });
                        }
                        objDetail.ATTEDANCEMID = objmster.ATTEDANCEMID;
                        objDetail.ROLLNO       = sbno[i].ToString();
                        objDetail.NAME         = getstudent[0].STUDENTNAME;
                        objDetail.STUDENTID    = getstudent[0].STUDENTID;

                        objDetail.STATUS = "A";

                        db.TBLATTENDENCEs.Add(objDetail);
                        db.SaveChanges();
                        string[] splitname = getstudent[0].STUDENTNAME.Split(' ');
                        TBLNOTIFICATIONDETAIL objnotidetails = new TBLNOTIFICATIONDETAIL();
                        string txtMessage = "Dear Parent, Your Pupil " + splitname[1] + ", is absent on " + Convert.ToDateTime(atteobj.ATTEDANCEDATE).ToString("dd/MM/yyyy") + ", Kindly note it. See attendance details goo.gl/iTjC9V";


                        if (smsstatus == "1")
                        {
                            SMSSendTESTDLR(getstudent[0].GMOBILE, txtMessage);
                        }

                        TBLNOTIFICATIONDETAIL objnotidetails = new TBLNOTIFICATIONDETAIL();

                        FCMPushNotification OBJPUSH = new FCMPushNotification();
                        //var getsubjectname = db.VIEWSUBJECTNAMEs.Where(r => r.SUBJECTID == obj.subject).ToList();

                        string studentid = Convert.ToString(getstudent[i].STUDENTID);
                        var    userid    = db.VIEWGETUSERIDFROMEMPCODEs.Where(r => r.EmpCode == studentid).FirstOrDefault();
                        var    device    = db.VW_DEVICE.FirstOrDefault(r => r.UserId == userid.UserId);
                        if (device != null)
                        {
                            if (!string.IsNullOrWhiteSpace(device.DeviceId))
                            {
                                OBJPUSH.SendNotification("Attendance", string.Format("Dear Parent, Your pupil is absent on dated {0}, kindly note.", objmster.ATTEDANCEDATE.Value.ToString("dd-MM-yyyy")), device.DeviceId);
                            }
                        }
                    }


                    return(new Results
                    {
                        IsSuccess = true,
                        Message = "Attendance Save successfully"
                    });
                }
                catch (Exception e)
                {
                    return(new Results
                    {
                        IsSuccess = false,
                        Message = e.Message
                    });
                }
            }

            return(new Results
            {
                IsSuccess = false,
                Message = "Attedance already taken for this Date"
            });
        }
    public FCMPushNotification SendNotificationToUser(string _title, string _message, string _topic, int _user_id, string question, string target, string type, int action_user_id)
    {
        FCMPushNotification result = new FCMPushNotification();

        try
        {
            DatabaseHelper db = new DatabaseHelper();
            db.AddParameter("@user_id", _user_id);
            string _device_token = Convert.ToString(db.ExecuteScalar("select device_token from usermaster where user_id=@user_id"));

            result.Successful = true;
            result.Error      = null;
            // var value = message;
            var requestUri = "https://fcm.googleapis.com/fcm/send";

            WebRequest webRequest = WebRequest.Create(requestUri);
            webRequest.Method = "POST";

            webRequest.Headers.Add(string.Format("Authorization: key={0}", "AAAApmJV7TI:APA91bHOKG-qFzExKIoiADCZigm_RN3mOIPq0oQFQ2dgvEov1ab7yd5ltnXsqavyJZ5Aisz_7VMyu29NDDBK2jOkBPz2ICLKkbbHoIz4S7_y8zAR_SXs4NPwOjyEid8jwj69kXToAkz5"));
            webRequest.Headers.Add(string.Format("Sender: id={0}", "714614369586"));
            webRequest.ContentType = "application/json";

            if (_message.Contains("https://firebasestorage"))
            {
                if (_message.Contains(".jpg"))
                {
                    _message = "New Image";
                }
                else if (_message.Contains(".mp4"))
                {
                    _message = "New Video";
                }
            }

            var data = new
            {
                to = _device_token, // Uncoment this if you want to test for single device
                                    //to = "/topics/" + _topic, // this is for topic
                data = new
                {
                    title        = _title,
                    body         = _message,
                    click_action = target,
                    type         = type
                }
            };
            var serializer = new JavaScriptSerializer();
            var json       = serializer.Serialize(data);

            Byte[] byteArray = Encoding.UTF8.GetBytes(json);

            webRequest.ContentLength = byteArray.Length;
            using (Stream dataStream = webRequest.GetRequestStream())
            {
                dataStream.Write(byteArray, 0, byteArray.Length);

                using (WebResponse webResponse = webRequest.GetResponse())
                {
                    using (Stream dataStreamResponse = webResponse.GetResponseStream())
                    {
                        using (StreamReader tReader = new StreamReader(dataStreamResponse))
                        {
                            String sResponseFromServer = tReader.ReadToEnd();
                            result.Response = sResponseFromServer;

                            //{ "multicast_id":8963785532865370122,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            result.Successful = false;
            result.Response   = null;
            result.Error      = ex;
        }
        return(result);
    }
    public FCMPushNotification SendNotificationToTopic(string _title, string _message, string _topic, int id, string question, string target, string type)
    {
        FCMPushNotification result = new FCMPushNotification();

        try
        {
            result.Successful = true;
            result.Error      = null;
            // var value = message;
            var requestUri = "https://fcm.googleapis.com/fcm/send";

            WebRequest webRequest = WebRequest.Create(requestUri);
            webRequest.Method = "POST";

            //webRequest.Headers.Add(string.Format("Authorization: key={0}", "AAAA_HaR5nk:APA91bHV7qGoDCX66QB5zvy6Ry93LFnAhXIIax1LVdpMRhITO5u6oKUWycpPnM8BddFbGjKhKWuDtQKYPb-ya88bg7TP3iIRpbEg8i6OjssODy5TmDDWCv_LlZzJW6bpA6WapuVQ7GTv"));
            //webRequest.Headers.Add(string.Format("Sender: id={0}", "1084321031801"));
            webRequest.Headers.Add(string.Format("Authorization: key={0}", "AAAA2XBurBY:APA91bF_KkvwIm4WpIZhlTXfPMVaMp84XzCywn4TfqqfgfK44rVe26bn3NTxtXxFmlQLUDAXvLWhejB6OS5-WVnG3RWxLpdqGeUyw5M2C8lsY9CZmxEOlbXxshvvIioSSiVzDpr3m2k5"));
            webRequest.Headers.Add(string.Format("Sender: id={0}", "933894204438"));
            webRequest.ContentType = "application/json";


            var data = new
            {
                //to = _device_id, // Uncoment this if you want to test for single device
                to = "/topics/" + _topic, // this is for topic
                                          //notification = new
                                          //{
                                          //    title = _title,
                                          //    body = _message,
                                          //    click_action = target,
                                          //    sound = "default",
                                          //    icon = "myicon"

                //},
                data = new
                {
                    title        = _title,
                    body         = _message,
                    click_action = target,
                    type         = type
                }
            };
            var serializer = new JavaScriptSerializer();
            var json       = serializer.Serialize(data);

            Byte[] byteArray = Encoding.UTF8.GetBytes(json);

            webRequest.ContentLength = byteArray.Length;
            using (Stream dataStream = webRequest.GetRequestStream())
            {
                dataStream.Write(byteArray, 0, byteArray.Length);

                using (WebResponse webResponse = webRequest.GetResponse())
                {
                    using (Stream dataStreamResponse = webResponse.GetResponseStream())
                    {
                        using (StreamReader tReader = new StreamReader(dataStreamResponse))
                        {
                            String sResponseFromServer = tReader.ReadToEnd();
                            result.Response = sResponseFromServer;

                            //{ "multicast_id":8963785532865370122,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            result.Successful = false;
            result.Response   = null;
            result.Error      = ex;
        }
        return(result);
    }
        public object FileUpload(homeworkparameters obj)
        {
            int Userid           = Convert.ToInt32(HttpContext.Current.Request["Userid"]);
            var Password         = HttpContext.Current.Request["Password"];
            SchoolMainContext db = new ConcreateContext().GetContext(Userid, Password);

            if (db == null)
            {
                return(new Results()
                {
                    IsSuccess = false, Message = "Invalid User"
                });
            }
            var logindetail = db.TBLUSERLOGINs.
                              Where(r => r.UserId == Userid && r.Password == Password && r.STATUS == "ACTIVE")
                              .FirstOrDefault();
            var getUserType = db.VW_GET_USER_TYPE.Where(r => r.UserId == Userid).FirstOrDefault();

            try
            {
                ///Base Url
                string UploadBaseUrl = "";
                var    httpRequest   = HttpContext.Current.Request;
                if (httpRequest.Files.Count > 0)
                {
                    if (logindetail.UserName.StartsWith("NKV"))
                    {
                        UploadBaseUrl = ConfigurationManager.AppSettings["NkvsBaseUrl"];
                    }
                    else if (logindetail.UserName.StartsWith("SXS"))
                    {
                        UploadBaseUrl = ConfigurationManager.AppSettings["StxavierBaseUrl"];
                    }
                    else if (logindetail.UserName.StartsWith("ASM"))
                    {
                        UploadBaseUrl = ConfigurationManager.AppSettings["AsmBaseUrl"];
                    }

                    else if (logindetail.UserName.StartsWith("ASY"))
                    {
                        UploadBaseUrl = ConfigurationManager.AppSettings["AsyBaseUrl"];
                    }
                    else if (logindetail.UserName.StartsWith("NMS"))
                    {
                        UploadBaseUrl = ConfigurationManager.AppSettings["NmsBaseUrl"];
                    }
                    string ftp = UploadBaseUrl;

                    //Upload File Using FTP
                    string ftpFolder = "UPLOADFILE/";
                    byte[] fileBytes = null;
                    string fileName  = "";
                    foreach (string file in httpRequest.Files)
                    {
                        var postedFile = httpRequest.Files[file];
                        fileName = postedFile.FileName;
                        using (StreamReader fileStream = new StreamReader(httpRequest.Files[file].InputStream))
                        {
                            fileBytes = Encoding.UTF8.GetBytes(fileStream.ReadToEnd());
                            fileStream.Close();
                        }

                        try
                        {
                            //Create FTP Request.
                            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftp + ftpFolder + fileName);
                            request.Method = WebRequestMethods.Ftp.UploadFile;

                            //Enter FTP Server credentials.
                            request.Credentials   = new NetworkCredential("akronsystems", "Password@123");
                            request.ContentLength = fileBytes.Length;
                            request.UsePassive    = true;
                            request.UseBinary     = true;
                            request.ServicePoint.ConnectionLimit = fileBytes.Length;
                            request.EnableSsl = false;
                            Stream requestStream = request.GetRequestStream();
                            requestStream.Write(fileBytes, 0, fileBytes.Length);
                            requestStream.Close();
                            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
                            response.Close();


                            ////Save HomeWork To the Table
                            TBLHOMEWORK upload = new TBLHOMEWORK();
                            upload.STANDARDID   = Convert.ToInt32(HttpContext.Current.Request["standardid"]);
                            upload.CREATEDID    = int.Parse(getUserType.EmpCode);
                            upload.DIVISIONID   = HttpContext.Current.Request["division"];
                            upload.SUBJECTID    = Convert.ToInt32(HttpContext.Current.Request["subject"]);
                            upload.TERMID       = Convert.ToInt32(HttpContext.Current.Request["term"]);
                            upload.HOMEWORK     = HttpContext.Current.Request["homeworkdescription"];
                            upload.HOMEWORKDATE = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                            upload.CREATEDON    = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                            upload.TIME         = DateTime.Now.ToShortTimeString();
                            upload.DISPLAY      = 1;
                            upload.ACADEMICYEAR = "2018-2019";
                            upload.FILEPATH     = fileName;
                            db.TBLHOMEWORKs.Add(upload);
                            db.SaveChanges();

                            ///Save HomeWork Notification



                            TBLNOTIFICATION       objmaster = new TBLNOTIFICATION();
                            TBLNOTIFICATIONDETAIL objdetail = new TBLNOTIFICATIONDETAIL();

                            objmaster.TITLE            = HttpContext.Current.Request["homeworkdescription"];
                            objmaster.NOTIFICATIONDATE = DateTime.Now;
                            objmaster.NOTIFICATIONTIME = DateTime.Now.ToShortTimeString();
                            objmaster.ACADEMICYEAR     = "2018-2019";
                            objmaster.DIVISIONID       = Convert.ToInt32(HttpContext.Current.Request["division"]);
                            objmaster.NOTIFICATIONTYPE = "Homework";
                            db.TBLNOTIFICATIONs.Add(objmaster);
                            db.SaveChanges();
                            objdetail.NOTIFICATIONID = objmaster.NOTIFICATIONID;

                            var DivisionId = Convert.ToInt32(HttpContext.Current.Request["division"]);
                            var getstudent = db.VIEWGETSTUDENTATTs.Where(r => r.DIVISIONID == DivisionId).ToList();
                            if (getstudent == null)
                            {
                                return(new Results
                                {
                                    IsSuccess = false,
                                    Message = "Student Not Found"
                                });
                            }
                            // return getstudent;
                            for (int i = 0; i < getstudent.Count; i++)
                            {
                                TBLNOTIFICATIONDETAIL objnotidetails = new TBLNOTIFICATIONDETAIL();
                                objnotidetails.NOTIFICATIONID = objmaster.NOTIFICATIONID;
                                objnotidetails.STUDENTID      = getstudent[i].STUDENTID;
                                objnotidetails.STATUS         = 0;
                                db.TBLNOTIFICATIONDETAILs.Add(objnotidetails);
                                db.SaveChanges();
                                FCMPushNotification OBJPUSH = new FCMPushNotification();
                                //var getsubjectname = db.VIEWSUBJECTNAMEs.Where(r => r.SUBJECTID == obj.subject).ToList();

                                string studentid = Convert.ToString(getstudent[i].STUDENTID);
                                var    userid    = db.VIEWGETUSERIDFROMEMPCODEs.Where(r => r.EmpCode == studentid).FirstOrDefault();
                                var    device    = db.VW_DEVICE.FirstOrDefault(r => r.UserId == userid.UserId);
                                if (device != null)
                                {
                                    if (!string.IsNullOrWhiteSpace(device.DeviceId))
                                    {
                                        OBJPUSH.SendNotification("Homework", obj.homeworkdescription, device.DeviceId);
                                    }
                                }
                                //if (smsstatus == "1")
                                //{
                                //    SMSSendTESTDLR(getstudent[i].GMOBILE, objHomework.HOMEWORK);
                                //}
                            }
                            return(new Results
                            {
                                IsSuccess = true,
                                Message = "Homework assign successfully"
                            });
                        }
                        catch (WebException ex)
                        {
                            return(new Results
                            {
                                IsSuccess = false,
                                Message = "Failed to upload File"
                            });
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(new Results
                {
                    IsSuccess = false,
                    Message = ex.ToString()
                });
            }


            return(null);
        }
        public object Savehomework(homeworkparameters obj)
        {
            SchoolMainContext db = new ConcreateContext().GetContext(obj.Userid, obj.Password);

            if (db == null)
            {
                return(new Results()
                {
                    IsSuccess = false, Message = "Invalid User"
                });
            }
            TBLHOMEWORK objHomework = new TBLHOMEWORK();
            var         getUserType = db.VW_GET_USER_TYPE.Where(r => r.UserId == obj.Userid).FirstOrDefault();



            objHomework.STANDARDID = int.Parse(obj.standardid);


            objHomework.CREATEDID    = int.Parse(getUserType.EmpCode);
            objHomework.DIVISIONID   = obj.division.ToString();
            objHomework.SUBJECTID    = obj.subject;
            objHomework.TERMID       = obj.term;
            objHomework.HOMEWORK     = obj.homeworkdescription;
            objHomework.HOMEWORKDATE = Convert.ToDateTime(DateTime.Now.ToShortDateString());
            objHomework.TIME         = DateTime.Now.ToShortTimeString();
            objHomework.DISPLAY      = 1;
            objHomework.ACADEMICYEAR = "2018-2019";

            db.TBLHOMEWORKs.Add(objHomework);
            db.SaveChanges();

            TBLNOTIFICATION objnotification = new TBLNOTIFICATION();

            objnotification.TITLE            = obj.homeworkdescription;
            objnotification.NOTIFICATIONDATE = DateTime.Now;
            objnotification.NOTIFICATIONTIME = DateTime.Now.ToString("h:mm tt");
            objnotification.DIVISIONID       = int.Parse(obj.division);
            objnotification.ACADEMICYEAR     = "2018-2019";
            objnotification.NOTIFICATIONTYPE = "Homework";
            db.TBLNOTIFICATIONs.Add(objnotification);
            db.SaveChanges();


            string[] divid = objHomework.DIVISIONID.ToString().Split(',');
            for (int d = 0; d < divid.Length; d++)
            {
                int singledivision = Convert.ToInt32(divid[d]);
                var getstudent     = db.VIEWGETSTUDENTATTs.Where(r => r.DIVISIONID == singledivision).ToList();

                if (getstudent == null)
                {
                    return(new Results
                    {
                        IsSuccess = false,
                        Message = "Student Not Found"
                    });
                }
                // return getstudent;
                for (int i = 0; i < getstudent.Count; i++)
                {
                    TBLNOTIFICATIONDETAIL objnotidetails = new TBLNOTIFICATIONDETAIL();
                    objnotidetails.NOTIFICATIONID = objnotification.NOTIFICATIONID;
                    objnotidetails.STUDENTID      = getstudent[i].STUDENTID;
                    objnotidetails.STATUS         = 0;
                    db.TBLNOTIFICATIONDETAILs.Add(objnotidetails);
                    db.SaveChanges();
                    FCMPushNotification OBJPUSH = new FCMPushNotification();
                    //var getsubjectname = db.VIEWSUBJECTNAMEs.Where(r => r.SUBJECTID == obj.subject).ToList();

                    string studentid = Convert.ToString(getstudent[i].STUDENTID);
                    var    userid    = db.VIEWGETUSERIDFROMEMPCODEs.Where(r => r.EmpCode == studentid).FirstOrDefault();
                    var    device    = db.VW_DEVICE.FirstOrDefault(r => r.UserId == userid.UserId);
                    if (device != null)
                    {
                        if (!string.IsNullOrWhiteSpace(device.DeviceId))
                        {
                            OBJPUSH.SendNotification("Homework", obj.homeworkdescription, device.DeviceId);
                        }
                    }
                    //if (smsstatus == "1")
                    //{
                    //    SMSSendTESTDLR(getstudent[i].GMOBILE, objHomework.HOMEWORK);
                    //}
                }
            }
            return(new Results
            {
                IsSuccess = true,
                Message = "Homework assign successfully and SMS sent Sucessfully"
            });
        }
        public object SaveAttendance(AttendanceParameterscs atteobj)
        {
            SchoolMainContext db = new ConcreateContext().GetContext(atteobj.Userid, atteobj.Password);

            if (db == null)
            {
                return(new Results()
                {
                    IsSuccess = false, Message = "Invalid User"
                });
            }

            TBLATTENDENCEMASTER objmster  = new TBLATTENDENCEMASTER();
            TBLATTENDENCE       objDetail = new TBLATTENDENCE();
            var logindetail = db.TBLUSERLOGINs.
                              Where(r => r.UserId == atteobj.Userid && r.Password == atteobj.Password && r.STATUS == "ACTIVE")
                              .FirstOrDefault();

            var ClassTeacherCheck = db.TBLASSIGNCLASSTEACHERs.Where(r => r.DIVISIONID == atteobj.DIVISIONID && r.ACADEMICYEAR == "2018-2019" && r.DISPLAY == 1).ToList();

            if (ClassTeacherCheck.Count != 0)
            {
                var checkatt = db.Vw_ATTENDANCECHECK.FirstOrDefault(r => r.DIVISIONID == atteobj.DIVISIONID && r.ATTEDANCEDATE == atteobj.ATTEDANCEDATE);
                //Duplicate Attendance Check
                if (checkatt == null)
                {
                    try
                    {
                        objmster.ATTEDANCEDATE = atteobj.ATTEDANCEDATE;

                        objmster.DIVISIONID    = atteobj.DIVISIONID;
                        objmster.DISPLAY       = 1;
                        objmster.EDUCATIONYEAR = "2018-2019";
                        var std = db.vw_FETCHSTANDARDBYDIVISION.Where(r => r.DIVISIONID == atteobj.DIVISIONID && r.DISPLAY == 1 && r.ACADEMICYEAR == "2018-2019").ToList();

                        objmster.STANDARDID = Convert.ToInt32(std[0].STANDARDID);
                        objmster.CREATEDON  = DateTime.Now;

                        objmster.CREATEDID = atteobj.Userid;

                        db.TBLATTENDENCEMASTERs.Add(objmster);
                        db.SaveChanges();


                        TBLNOTIFICATION objnotification = new TBLNOTIFICATION();
                        objnotification.TITLE            = "Daily Attendance";
                        objnotification.NOTIFICATIONDATE = DateTime.Now;
                        objnotification.NOTIFICATIONTIME = DateTime.Now.ToString("h:mm tt");
                        objnotification.DIVISIONID       = atteobj.DIVISIONID;
                        objnotification.ACADEMICYEAR     = "2018-2019";
                        objnotification.NOTIFICATIONTYPE = "Attendance";
                        db.TBLNOTIFICATIONs.Add(objnotification);
                        db.SaveChanges();



                        string   absentno = atteobj.Absentno;
                        string[] sbno     = absentno.Split(',');
                        objDetail.ATTEDANCEMID = objmster.ATTEDANCEMID;
                        for (int i = 0; i < sbno.Length; i++)
                        {
                            string abno = sbno[i].ToString();

                            int rollno = Convert.ToInt32(abno);

                            var getstudent = db.VIEWGETSTUDENTATTs.Where(r => r.DIVISIONID == atteobj.DIVISIONID && r.ROLL_NO == rollno).ToList();
                            if (getstudent.Count == 0)
                            {
                                return(new Results()
                                {
                                    IsSuccess = false, Message = "No students found for this division "
                                });
                            }
                            objDetail.ATTEDANCEMID = objmster.ATTEDANCEMID;
                            objDetail.ROLLNO       = sbno[i].ToString();
                            objDetail.NAME         = getstudent[0].STUDENTNAME;
                            objDetail.STUDENTID    = getstudent[0].STUDENTID;

                            objDetail.STATUS = "A";

                            db.TBLATTENDENCEs.Add(objDetail);
                            db.SaveChanges();

                            string[] splitname = getstudent[0].STUDENTNAME.Split(' ');
                            TBLNOTIFICATIONDETAIL objnotidetails = new TBLNOTIFICATIONDETAIL();
                            objnotidetails.NOTIFICATIONID = objnotification.NOTIFICATIONID;
                            objnotidetails.STUDENTID      = getstudent[0].STUDENTID;
                            objnotidetails.STATUS         = 0;

                            db.TBLNOTIFICATIONDETAILs.Add(objnotidetails);
                            db.SaveChanges();

                            string str = "";
                            if (logindetail.UserName.StartsWith("NKV"))
                            {
                                str = "goo.gl/NsoiKY";
                            }
                            else if (logindetail.UserName.StartsWith("SXS"))
                            {
                                str = "goo.gl/zotf13";
                            }
                            else if (logindetail.UserName.StartsWith("ASM"))
                            {
                                str = "goo.gl/9vNiX8";
                            }

                            else if (logindetail.UserName.StartsWith("ASY"))
                            {
                                str = "goo.gl/SNtreT";
                            }
                            else if (logindetail.UserName.StartsWith("NMS"))
                            {
                                str = "goo.gl/j7XjCx";
                            }
                            string txtMessage = "Dear Parent, Your Pupil " + splitname[1] + ", is absent on " + Convert.ToDateTime(atteobj.ATTEDANCEDATE).ToString("dd/MM/yyyy") + ", Kindly note it. See attendance details " + str;


                            if (smsstatus == "1")
                            {
                                string responseString = SMSSendTESTDLR(getstudent[0].GMOBILE, txtMessage, logindetail.UserName);
                                if (responseString != "")
                                {
                                    var jObject  = JObject.Parse(responseString);
                                    var response = jObject["response"].ToString();

                                    TBLMSGHISTORY smshist = new TBLMSGHISTORY();
                                    smshist.DATE        = DateTime.Now;
                                    smshist.TIME        = DateTime.Now.ToShortTimeString();
                                    smshist.MSG         = txtMessage;
                                    smshist.TYPE        = "ATT";
                                    smshist.CREATEDID   = atteobj.Userid;
                                    smshist.DISPLAY     = 1;
                                    smshist.STUDENTID   = getstudent[0].STUDENTID;
                                    smshist.FROMEMPID   = Convert.ToInt64(logindetail.EmpCode);
                                    smshist.STATUS      = "Out";
                                    smshist.InStatus    = "In";
                                    smshist.OutStatus   = "Out";
                                    smshist.REQUESTID   = response;
                                    smshist.EMPLOYEEID  = 0;
                                    smshist.TOEMPID     = "0";
                                    smshist.ATTACHMENTS = "";
                                    smshist.SUBJECT     = "";
                                    smshist.OtherNos    = "";
                                    smshist.ALUMNIID    = 0;
                                    db.TBLMSGHISTORies.Add(smshist);
                                    db.SaveChanges();
                                }
                            }



                            FCMPushNotification OBJPUSH = new FCMPushNotification();
                            //var getsubjectname = db.VIEWSUBJECTNAMEs.Where(r => r.SUBJECTID == obj.subject).ToList();

                            string studentid = Convert.ToString(getstudent[0].STUDENTID);
                            var    userid    = db.VIEWGETUSERIDFROMEMPCODEs.Where(r => r.EmpCode == studentid).FirstOrDefault();
                            var    device    = db.VW_DEVICE.FirstOrDefault(r => r.UserId == userid.UserId);
                            if (device != null)
                            {
                                if (!string.IsNullOrWhiteSpace(device.DeviceId))
                                {
                                    OBJPUSH.SendNotification("Attendance", string.Format("Dear Parent, Your pupil is absent on dated {0}, kindly note.", objmster.ATTEDANCEDATE.Value.ToString("dd-MM-yyyy")), device.DeviceId);
                                }
                            }
                        }


                        return(new Results
                        {
                            IsSuccess = true,
                            Message = "Attendance Save successfully"
                        });
                    }

                    catch (Exception e)
                    {
                        return(new Results
                        {
                            IsSuccess = false,
                            Message = e.Message
                        });
                    }
                }


                return(new Results
                {
                    IsSuccess = false,
                    Message = "Attedance already taken for this Date"
                });
            }
            return(new Results
            {
                IsSuccess = false,
                Message = "Class teacher is not assign to this division"
            });
        }