Ejemplo n.º 1
0
 public override int GetHashCode()
 {
     unchecked
     {
         return(((EventTypeInfo != null ? EventTypeInfo.GetHashCode() : 0) * 397) ^
                (ParentType != null ? ParentType.GetHashCode() : 0));
     }
 }
Ejemplo n.º 2
0
        public static EventTypeInfo EventType(IBMWIoTP.ApiClient cli, SchemaInfo sc)
        {
            Console.WriteLine("Event Type sample request");
            Console.WriteLine("Add Draft EventType");
            EventTypeDraft draft = new EventTypeDraft();

            draft.name        = "Temprature";
            draft.description = "eventType for temperature";
            draft.schemaId    = sc.id;
            EventTypeInfo info = cli.AddDraftEventType(draft);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(info));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Get All Draft EventType");
            EventTypeCollection collection = cli.GetAllDraftEventType();

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(collection));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Delete Draft");
            //creating another one to delete
            EventTypeInfo del = cli.AddDraftEventType(draft);

            cli.DeleteDraftEventType(del.id);
            Console.WriteLine("Get event type draft of id" + info.id);
            EventTypeInfo reccivedInfo = cli.GetDraftEventType(info.id);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(reccivedInfo));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Update draft");
            reccivedInfo.description = "updated info";
            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.UpdateDraftEventType(reccivedInfo)));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Get all active EventType");
            EventTypeCollection coll = cli.GetAllActiveEventType();

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(coll));
            Console.WriteLine("===============================================================================");
            if (coll.results.Count > 0)
            {
                Console.WriteLine("Get all active EventType with id");
                Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.GetActiveEventType(coll.results[0].id)));
                Console.WriteLine("===============================================================================");
            }

            return(reccivedInfo);
        }
Ejemplo n.º 3
0
        public static void Main(string[] args)
        {
            try{
                Console.WriteLine("============================ IBM WatsonIoTP Sample ============================");
                Console.WriteLine("===============================================================================");

                Console.WriteLine("Check Out Following Samples For Information Management");
                Console.WriteLine("1.Basic scenario");
                Console.WriteLine("2.All API sample");
                Console.WriteLine("3.Any key to exit");
                Console.Write("Please enter your choice :");
                int val = int.Parse(Console.ReadLine());

                Console.WriteLine("===============================================================================");
                switch (val)
                {
                case 1: Init();
                    Console.WriteLine("Starting Basic scenario");
                    sampleSequence(cli);
                    break;

                case 2: Init();
                    Console.WriteLine("Starting All API sample");
                    SchemaInfo    sc   = Schema(cli);
                    EventTypeInfo info = EventType(cli, sc);
                    var           pi   = PhysicalInterfaces(cli, info);
                    SchemaDraft   sd   = new SchemaDraft();
                    sd.name       = "test";
                    sd.schemaFile = "tempSchemaLi.json";
                    SchemaInfo si = cli.AddDraftSchema(sd);
                    var        li = LogicalInterface(cli, si);
                    DeviceType(cli, li, pi);
                    Devices(cli, li);
                    break;

                default: break;
                }
                Console.Write("Press any key to continue . . . ");
                Console.ReadKey();
            }
            catch (Exception e) {
                Console.WriteLine("Err :" + e.Message);
            }
        }
Ejemplo n.º 4
0
        public static PhysicalInterfacesInfo PhysicalInterfaces(IBMWIoTP.ApiClient cli, EventTypeInfo evnt)
        {
            Console.WriteLine("Physical Interfaces sample request");
            Console.WriteLine("Add Draft PhysicalInterfaces");
            PhysicalInterfaceDraft draft = new PhysicalInterfaceDraft();

            draft.name        = "TempPI";
            draft.description = "new PhysicalInterfaces for temp";
            PhysicalInterfacesInfo newPI = cli.AddDraftPhysicalInterfaces(draft);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(newPI));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Get all Draft PhysicalInterfaces");
            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.GetAllDraftPhysicalInterfaces()));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Update Draft PhysicalInterfaces");
            newPI.description = "changed to new discription";
            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.UpdateDraftPhysicalInterfaces(newPI)));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Get Draft PhysicalInterfaces");
            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.GetDraftPhysicalInterfaces(newPI.id)));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Map PhysicalInterfaces EventType");
            EventTypeBind bind = new EventTypeBind();

            bind.eventTypeId = evnt.id;
            bind.eventId     = "temperature";
            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.MapDraftPhysicalInterfacesEvent(newPI.id, bind)));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Get all Mapping PhysicalInterfaces EventType");
            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.GetAllDraftPhysicalInterfacesMappedEvents(newPI.id)));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Delete Mapping PhysicalInterfaces EventType");
            cli.DeleteDraftPhysicalInterfacesMappedEvents(newPI.id, bind.eventId);
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Get All active PhysicalInterfaces");
            PhysicalInterfacesCollection coll = cli.GetAllActivePhysicalInterfaces();

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(coll));
            Console.WriteLine("===============================================================================");
            if (coll.results.Count > 0)
            {
                Console.WriteLine("Get active PhysicalInterfaces");
                Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.GetActivePhysicalInterfaces(coll.results[0].id)));
                Console.WriteLine("===============================================================================");
                Console.WriteLine("Get active PhysicalInterfaces Events ");
                Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.GetActivePhysicalInterfacesEvents(coll.results[0].id)));
                Console.WriteLine("===============================================================================");
            }
            return(newPI);
        }
Ejemplo n.º 5
0
        public static void sampleSequence(IBMWIoTP.ApiClient cli)
        {
            SchemaDraft sd = new SchemaDraft();

            sd.name       = "tempEventSchema";
            sd.schemaFile = "tempSchemaPi.json";
            Console.WriteLine("Create a draft event schema resource for your event type");
            SchemaInfo sc = cli.AddDraftSchema(sd);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(sc));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Create a draft event type that references the event schema");
            EventTypeDraft draft = new EventTypeDraft();

            draft.name        = "test";
            draft.description = "eventType for temperature";
            draft.schemaId    = sc.id;
            EventTypeInfo info = cli.AddDraftEventType(draft);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(info));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Create a draft physical interface");
            PhysicalInterfaceDraft draftPI = new PhysicalInterfaceDraft();

            draftPI.name        = "TempPI";
            draftPI.description = "new PhysicalInterfaces for temp";
            PhysicalInterfacesInfo newPI = cli.AddDraftPhysicalInterfaces(draftPI);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(newPI));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Add the event type to the draft physical interface");
            EventTypeBind bind = new EventTypeBind();

            bind.eventId     = deviceEvent;
            bind.eventTypeId = info.id;
            EventTypeBind bindResponse = cli.MapDraftPhysicalInterfacesEvent(newPI.id, bind);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(bindResponse));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Update the draft device type to connect the draft physical interface");
            PhysicalInterfacesInfo updatedPI = cli.AddDraftDeviceTypePI(deviceType, newPI);

            Console.WriteLine("===============================================================================");
            Console.WriteLine("Create a draft logical interface schema resource");
            SchemaDraft sdLI = new SchemaDraft();

            sdLI.name       = "temperatureEventSchema";
            sdLI.schemaFile = "tempSchemaLi.json";
            SchemaInfo schemaForLI = cli.AddDraftSchema(sdLI);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(schemaForLI));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Create a draft logical interface that references a draft logical interface schema");
            LogicalInterfaceDraft draftLI = new LogicalInterfaceDraft();

            draftLI.name     = "environment sensor interface";
            draftLI.schemaId = schemaForLI.id;
            LogicalInterfaceInfo newLI = cli.AddDraftLogicalInterfaces(draftLI);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(newLI));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Add the draft logical interface to a device type");
            LogicalInterfaceInfo mappedLI = cli.AddDraftDeviceTypeLI(deviceType, newLI);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(mappedLI));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Define mappings to map properties in the inbound event to properties in the logical interface");
            MappingDraft liMappingDraft = new MappingDraft();

            liMappingDraft.notificationStrategy = "on-every-event";
            liMappingDraft.propertyMappings     = new {
                test = new {
                    temperature = "$event.temp"
                }
            };
            liMappingDraft.logicalInterfaceId = mappedLI.id;
            MappingInfo mappedLiInfo = cli.AddDraftDeviceTypeMapping(deviceType, liMappingDraft);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(mappedLiInfo));
            Console.WriteLine("===============================================================================");
            Console.WriteLine("Validate and activate the configuration");
            OperationInfo activate = new OperationInfo(OperationInfo.Activate);
            var           responce = cli.OperateDraftDeviceType(deviceType, activate);

            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(responce));
            Console.WriteLine("===============================================================================");
            Console.WriteLine(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(cli.GetCurrentDeviceState(deviceType, "1qaz2wsx", mappedLI.id)));
        }
Ejemplo n.º 6
0
        /// <summary>
        ///  //we'll get the email addresses and notify the attendants the attendants
        /// </summary>
        public void SendMeetingRequest(RATV3Entities db,
                                       Event ev,
                                       List <Employee> attendantEmployees,
                                       Employee creator,
                                       ControllerContext ControllerContext,
                                       int update = 0)
        {
            try
            {
                //getting the reviewed employee
                Attendant at       = ev.Attendants.FirstOrDefault();
                Employee  reviewed = db.Employees.Where(x => x.EmployeeID == at.EmployeeID).FirstOrDefault();
                reviewed.SkillLevelsList = reviewed.SkillLevels.ToList();

                //getting message content
                EventTypeInfo currentEventType = Const.EventTypesinfo.Where(x => x.EventType == ev.EventType).FirstOrDefault();
                string        embededHtml      = "<html><head></head><body>" + "<p>Test</p>" + "<br/><br/>" + "<p>Test Embeded</p>" + "<br/>" + "<p>Test Ending</p>" + "<br/></body></html>";

                if (currentEventType != null && currentEventType.EventType == "Performance Review")
                {
                    string generatednotificationHTML = ViewRenderer.RenderView("~/Views/Notifications/PerformanceReview.cshtml", reviewed,
                                                                               ControllerContext);

                    if (!String.IsNullOrEmpty(generatednotificationHTML))
                    {
                        embededHtml = generatednotificationHTML;
                    }
                }



                //preping the email message
                MailMessage email = new MailMessage();
                email.From = new MailAddress(creator.Email, creator.FirstName + ' ' + creator.LastName);
                //adding recipients
                foreach (Employee attendant in attendantEmployees)
                {
                    email.To.Add(new MailAddress(attendant.Email, attendant.FirstName + ' ' + attendant.LastName));
                }

                email.IsBodyHtml = true;
                email.Subject    = ev.EventType;


                //preparing email content
                //"text/html" - this view will have all the content
                System.Net.Mime.ContentType htmlMimeContent = new System.Net.Mime.ContentType("text/html");
                AlternateView htmlView = AlternateView.CreateAlternateViewFromString(embededHtml, htmlMimeContent);
                htmlView.ContentType.CharSet = Encoding.UTF8.WebName;
                if (ev.EventType == "Performance Review" && ev.Attendants != null && ev.Attendants.Count > 0 && reviewed != null)
                {
                    //we'll attach the pdf to the email

                    Stream pdfDocument = GenerateUserCV(reviewed, ControllerContext);
                    if (pdfDocument != null)
                    {
                        LinkedResource resource = new LinkedResource(pdfDocument);
                        resource.ContentType.Name = reviewed.FirstName + " " + reviewed.LastName + " " + "Report.pdf";
                        htmlView.LinkedResources.Add(resource);
                    }
                }
                else if (ev.EventType == "Department Monthly Meeting" && reviewed.DepartmentID.HasValue)
                {
                    //we'll attach the excel report to the email

                    byte[] array = ExcelReportGenerator.GenerateExcelReportForDepartment(reviewed.DepartmentID.Value,
                                                                                         ev.StartTime.Month, ev.StartTime.Year, db);
                    Stream excelDocument = new MemoryStream(array);
                    if (excelDocument != null)
                    {
                        LinkedResource resource = new LinkedResource(excelDocument);
                        resource.ContentType.Name = "Department Report.xlsx";
                        htmlView.LinkedResources.Add(resource);
                    }
                }



                //preparing calendar meeting view
                DateTime endTime;
                if (ev.EndTime.HasValue)
                {
                    endTime = ev.EndTime.Value;
                }
                else
                {
                    endTime = ev.StartTime;
                }

                //this is the guid of the meeting request
                Guid requestGUID;

                if (ev.IcsGuid.HasValue)
                {
                    requestGUID = ev.IcsGuid.Value;
                }
                else
                {
                    requestGUID = Guid.NewGuid();
                }
                AlternateView avCal = CreateICSView(email, ev.StartTime, endTime, ev, requestGUID, update);
                //email.Headers.Add("Content-class", "urn:content-classes:calendarmessage");
                email.AlternateViews.Add(htmlView);
                email.AlternateViews.Add(avCal);

                //finally we send the mail
                client.Send(email);

                if (!ev.IcsGuid.HasValue)
                {
                    ev.IcsGuid         = requestGUID;
                    db.Entry(ev).State = EntityState.Modified;
                }
                if (update > 0)
                {
                    //we want to be able to store the update number too

                    //ev.UpdateNo = update;
                    db.Entry(ev).State = EntityState.Modified;
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                //handle Exception
            }
        }
Ejemplo n.º 7
0
        public static Dictionary <string, List <LessonInfo> > ParseCistXlsLessonInfo(string cistXlsTimetableData, params Group[] searchGroups)
        {
            var groupsLessons = new Dictionary <string, List <LessonInfo> >();

            if (searchGroups == null || searchGroups.Length == 0)
            {
                return(groupsLessons);
            }

            try
            {
                // Setting default values
                foreach (string searchGroup in searchGroups.Select(sg => sg.Name))
                {
                    if (string.IsNullOrEmpty(searchGroup))
                    {
                        throw new ArgumentNullException("Group name must be specified");
                    }
                    groupsLessons.Add(searchGroup, new List <LessonInfo>());
                }

                cistXlsTimetableData = cistXlsTimetableData.Substring(cistXlsTimetableData.IndexOf("\n\n"));
                List <string> timetableInfoRaw = cistXlsTimetableData
                                                 .Split(new string[] { @"ss:Type=""String"">" }, StringSplitOptions.RemoveEmptyEntries)
                                                 .Skip(1)
                                                 .ToList();

                for (int i = 0; i < timetableInfoRaw.Count; i += 2)
                {
                    List <string> infoRaw = timetableInfoRaw[i + 1]
                                            .Remove(timetableInfoRaw[i + 1].IndexOf("</Data>"))
                                            .Split(new string[] { ": ", "\n" }, StringSplitOptions.RemoveEmptyEntries)
                                            .ToList();

                    string lessonShortName = timetableInfoRaw[i].Remove(timetableInfoRaw[i].IndexOf("</Data>"));
                    string lessonLongName  = infoRaw[0].Trim();
                    foreach (string groupName in groupsLessons.Keys)
                    {
                        groupsLessons[groupName].Add(new LessonInfo
                        {
                            ShortName = lessonShortName,
                            LongName  = lessonLongName
                        });
                    }

                    foreach (string eventTypeInfoRaw in infoRaw.Skip(1))
                    {
                        List <string> eventTypeInfo = eventTypeInfoRaw.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                        if (eventTypeInfo.Count <= 4)
                        {
                            // Event type doesn`t have teacher
                            continue;
                        }

                        // Checking for groups with spaces
                        while (!eventTypeInfo[3].EndsWith(",") && eventTypeInfo.Count > 3)
                        {
                            eventTypeInfo[3] += $" {eventTypeInfo[4]}";
                            eventTypeInfo.RemoveAt(4);
                        }

                        foreach (string groupName in groupsLessons.Keys)
                        {
                            if (!IsGroupsListFromXlsContains(eventTypeInfo[3], groupName))
                            {
                                // Teachers for different groups
                                continue;
                            }
                            LessonInfo lessonInfo = groupsLessons[groupName].First(li => li.ShortName == lessonShortName);

                            string type    = eventTypeInfo[0];
                            string teacher = $"{eventTypeInfo[4]} {eventTypeInfo[5]}{eventTypeInfo[6]}".TrimEnd(',');

                            EventTypeInfo eventType = lessonInfo.EventTypesInfo.FirstOrDefault(et => et.Name == type);
                            if (eventType == null)
                            {
                                eventType = new EventTypeInfo
                                {
                                    Name = type
                                };
                                lessonInfo.EventTypesInfo.Add(eventType);
                            }
                            if (!eventType.Teachers.Contains(teacher))
                            {
                                eventType.Teachers.Add(teacher);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //Device.BeginInvokeOnMainThread(() =>
                //{
                //    MessagingCenter.Send(Application.Current, MessageTypes.ExceptionOccurred, ex);
                //});
                groupsLessons = null;
            }
            return(groupsLessons);
        }