Exemple #1
0
        public override bool UpdateData(int userId, int id, ref object dtoItem, out Library.DTO.Notification notification)
        {
            DTO.DevRequest dtoDevRequest = ((Newtonsoft.Json.Linq.JObject)dtoItem).ToObject <DTO.DevRequest>();
            notification = new Library.DTO.Notification()
            {
                Type = Library.DTO.NotificationType.Success
            };
            try
            {
                using (DevRequestMngEntities context = CreateContext())
                {
                    DevRequest dbItem = null;
                    if (id == 0)
                    {
                        dbItem = new DevRequest();
                        context.DevRequest.Add(dbItem);
                        dbItem.DevRequestStatusID = 1; // PENDING
                    }
                    else
                    {
                        notification.Message = "Dev request not found!";
                        return(false);
                    }
                    converter.DTO2DB(dtoDevRequest, ref dbItem, FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\", userId);

                    // create history tracking
                    DevRequestHistory dbHistory = new DevRequestHistory();
                    dbHistory.UpdatedBy                 = userId;
                    dbHistory.UpdatedDate               = DateTime.Now;
                    dbHistory.ActionDescription         = "REQUEST CREATED";
                    dbHistory.DevRequestHistoryActionID = 1; // 1 = CREATE
                    dbItem.DevRequestHistory.Add(dbHistory);

                    context.SaveChanges();

                    // send notify email to admin
                    string emailSubject = "TASK REQUEST: [CREATED] " + dbItem.Title;
                    string emailBody    = "";
                    emailBody += "ID: " + dbItem.DevRequestID.ToString() + "<br/>";
                    emailBody += "TITLE: " + dbItem.Title + "<br/>";
                    emailBody += "REQUESTER: " + supportFactory.GetUsers().FirstOrDefault(o => o.UserId == userId).FullName + "<br/>";
                    emailBody += "DESCRIPTION: " + dbItem.Description + "<br/>";
                    SendNotification(context, dbItem, emailSubject, emailBody);

                    dtoItem = GetData(dbItem.DevRequestID, out notification).Data;
                    return(true);
                }
            }
            catch (Exception ex)
            {
                notification = new Library.DTO.Notification()
                {
                    Message = ex.Message, Type = Library.DTO.NotificationType.Error
                };
                return(false);
            }
        }
        public void DTO2DB(DTO.DevRequest dtoItem, ref DevRequest dbItem, string TmpFile, int userId)
        {
            // request
            AutoMapper.Mapper.Map <DTO.DevRequest, DevRequest>(dtoItem, dbItem);

            // request file
            foreach (DTO.DevRequestFile dtoFile in dtoItem.DevRequestFiles.Where(o => o.HasChanged == true))
            {
                // add file
                DevRequestFile dbFile = new DevRequestFile();
                dbItem.DevRequestFile.Add(dbFile);
                AutoMapper.Mapper.Map <DTO.DevRequestFile, DevRequestFile>(dtoFile, dbFile);
                dbFile.FileUD = fwFactory.CreateNoneImageFilePointer(TmpFile, dtoFile.NewFile, dtoFile.FileUD, dtoFile.FriendlyName);
            }
        }