Пример #1
0
        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?
        }