private void PrePopulateNewTicket(Ticket newTicket) { //TODO: Move this somewhere else? //TODO: double check owner if populated, make sure submitter can set this field if it isn't their id already //TODO: double check assigned if populated, make sure submitter can set this field. var now = DateTime.Now; newTicket.Owner = newTicket.Owner ?? SecurityProvider.CurrentUserId; newTicket.CreatedBy = SecurityProvider.CurrentUserId; newTicket.CreatedDate = now; newTicket.TicketStatus = TicketStatus.Active; newTicket.CurrentStatusDate = now; newTicket.CurrentStatusSetBy = SecurityProvider.CurrentUserId; //last update info will be set by PrePopulateModifiedTicket method, no need to set it here too //newTicket.LastUpdateBy = SecurityProvider.CurrentUserId; //newTicket.LastUpdateDate = now; if (newTicket.TagList != null && newTicket.TagList.Any()) { newTicket.TicketTags.AddRange(newTicket.TagList.Split(',').Select(tag => new TicketTag { TagName = tag.Trim() })); } var act = (newTicket.Owner != SecurityProvider.CurrentUserId) ? TicketActivity.CreateOnBehalfOf : TicketActivity.Create; newTicket.TicketEvents.AddActivityEvent( SecurityProvider.CurrentUserId, act, null, null, SecurityProvider.GetUserDisplayName(newTicket.Owner)); //TODO: What with attachments? }