public static List <GXEvent> ToGXEvents(this IEnumerable <Event> events, int accId) { var result = new List <GXEvent>(); foreach (var e in events) { var startDateTime = (e.Start.DateTimeRaw != null) ? DateTimeOffset.Parse(e.Start.DateTimeRaw) : (DateTimeOffset?)null; var endDateTime = (e.End.DateTimeRaw != null) ? DateTimeOffset.Parse(e.End.DateTimeRaw) : (DateTimeOffset?)null; var gxEvent = new GXEvent { AID = accId, GID = e.Id, Location = e.Location, StartDate = startDateTime.HasValue ? startDateTime.Value.Date : DateTime.ParseExact(e.Start.Date, "yyyy-MM-dd", CultureInfo.InvariantCulture), StartDateTime = startDateTime, EndDate = endDateTime.HasValue ? endDateTime.Value.Date : DateTime.ParseExact(e.End.Date, "yyyy-MM-dd", CultureInfo.InvariantCulture), EndDateTime = endDateTime, Summary = e.Summary, Description = e.Description, ColorId = (e.ColorId != null) ? byte.Parse(e.ColorId) : (byte)1 }; result.Add(gxEvent); } return(result); }
public async Task AddEvent(GXEvent ev, int accId) { var account = _db.Accounts.Find(accId); account.GXEvents.Add(ev); _db.GXEvents.Add(ev); await _db.SaveChangesAsync(); }
private void SendModifyEventMsg(EventModifyAction action) { Messenger.Base.Send(new ModifyEventMsg { Action = action, SaveChangeOnline = SaveChangeOnline, Event = Event }); _originalEvent = new GXEvent(Event); }
private void OnEventToEditReceived(GXEvent ev) { if (ev != null) { Event = new GXEvent(ev); _originalEvent = new GXEvent(Event); ActionName = "Edit event"; if (ev.Account != null && ev.Account.Gmail.Contains("@gmail.com")) { Account = ev.Account.Gmail; SaveChangeOnline = true; } } }
public async Task UpdateEvent(GXEvent newEvent, int id) { var eventToUpdate = _db.GXEvents.Find(id); if (eventToUpdate != null) { eventToUpdate.Summary = newEvent.Summary; eventToUpdate.StartDate = newEvent.StartDate; eventToUpdate.EndDate = newEvent.EndDate; eventToUpdate.Location = newEvent.Location; eventToUpdate.Description = newEvent.Description; eventToUpdate.ColorId = newEvent.ColorId; await _db.SaveChangesAsync(); } }
public async Task EventDb_InsertWithoutReqCol_ThrowException() { var missingSummaryEv = new GXEvent { StartDate = DateTime.Now, EndDate = DateTime.Now.AddHours(1) }; try { await _service.AddEvent(missingSummaryEv, 1); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public void InitModel() { Event = new GXEvent { AID = 1, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(1), ColorId = 1 }; _originalEvent = new GXEvent(Event); LoggedIn = _dbs.GetAvailableAccounts().Count > 1; SaveChangeOnline = false; ActionName = "Create event"; Account = "Local"; Status = new ModifyEventStatusMsg { Success = false, Deleted = false, Error = null }; EventModified = false; }
public static Event ToEvent(this GXEvent e) { DateTimeZone tz = DateTimeZoneProviders.Tzdb.GetSystemDefault(); return(new Event { Id = e.GID, Location = e.Location, Start = new EventDateTime { DateTimeRaw = e.StartDate.ToString("yyyy-MM-dd'T'HH:mm:ss"), TimeZone = tz.ToString() }, End = new EventDateTime { DateTimeRaw = e.EndDate.ToString("yyyy-MM-dd'T'HH:mm:ss"), TimeZone = tz.ToString() }, Summary = e.Summary, Description = e.Description, ColorId = e.ColorId.ToString() }); }
/// <summary> /// Start listen events. /// </summary> /// <param name="request"></param> /// <returns></returns> public GXEventsRegisterResponse Post(GXEventsRegisterRequest request) { if (request.SessionListener.Equals(Guid.Empty) || request.Instance.Equals(Guid.Empty)) { throw new Exception("Listener Guid is empty."); } if (request.Actions == Actions.None && request.Targets == ActionTargets.None) { return(new GXEventsRegisterResponse()); } IAuthSession s = this.GetSession(false); long id = 0; bool superAdmin = false; Guid guid = request.DataCollectorGuid; //Guid is set if DC is retreaving new tasks. if (long.TryParse(s.Id, out id)) { superAdmin = GuruxAMI.Server.GXBasicAuthProvider.IsSuperAdmin(s); } else { if (request.DataCollectorGuid.Equals(Guid.Empty)) { throw new Exception("Data collector Guid is empty."); } } AppHost host = this.ResolveService <AppHost>(); //Check that there are no several DCs with same Guid. //Note! This might happend when DC is restarted wrong. //For this reason we are only give a warning. List <GXEventsItem> events = new List <GXEventsItem>(); if (host.IsDCRegistered(guid)) { lock (Db) { GXAmiSystemError e = new GXAmiSystemError(1, ActionTargets.SystemError, Actions.State, new Exception("Data collector already exists.")); Db.Insert <GXAmiSystemError>(e); events.Add(new GXEventsItem(ActionTargets.SystemError, Actions.Add, e)); } } ulong mask = (ulong)(((int)request.Targets << 16) | (int)request.Actions); GXEvent e1 = new GXEvent(id, superAdmin, guid, request.Instance, mask); host.AddEvent(request.SessionListener, e1); if (guid != Guid.Empty) { //Notify that DC is connected. lock (Db) { GXAmiDataCollector dc = Db.Select <GXAmiDataCollector>(q => q.Guid == guid)[0]; dc.State = Gurux.Device.DeviceStates.Connected; Db.UpdateOnly(dc, p => p.StatesAsInt, p => p.Id == dc.Id); events.Add(new GXEventsItem(ActionTargets.DataCollector, Actions.State, dc)); } host.SetEvents(Db, this.Request, 0, events); } return(new GXEventsRegisterResponse()); }